PDA

View Full Version : مشکل متغیر های خالی در insert into table



pouyajabbarisani
جمعه 09 بهمن 1394, 14:11 عصر
به نام خدا و سلام خدمت دوستان

عزیزان بنده یک فرم نوشتم برای اینپوت کردن اطلاعات در دیتا بیس. مشکل اینه که ممکنه بعضی وقت ها نیاز نباشه که بعضی از فیلد ها پر بشه و در نتیجه متغیر ها مقدار دقی نمی شوند.

در این حالت در صورتی که من به شکل زیر می نویسم: (بدون ' یا " یا `)

$sql = "INSERT INTO services (name, size, quantity1, price1, quantity2, price2, quantity3, price3, quantity4, price4)
VALUES ($service_name, $service_size, $service_quantity1, $service_price1, $service_quantity2, $service_price2, $service_quantity3, $service_price3, $service_quantity4, $service_price4)";

این ارور رو میده:

Error: INSERT INTO services (name, size, quantity1, price1, quantity2, price2, quantity3, price3, quantity4, price4) VALUES (اسم, 234, 4545, 4545, , , , , , )
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , , , , )' at line 2


در صورتی که به شکل زیر می نویسم: ( داخل ' )


$sql = "INSERT INTO services (name, size, quantity1, price1, quantity2, price2, quantity3, price3, quantity4, price4)
VALUES ('$service_name', '$service_size', '$service_quantity1', '$service_price1', '$service_quantity2', '$service_price2', '$service_quantity3', '$service_price3', '$service_quantity4', '$service_price4')";


این ارور رو میده:

Error: INSERT INTO services (name, size, quantity1, price1, quantity2, price2, quantity3, price3, quantity4, price4) VALUES ('اسم', '123', '434', '3434', '', '', '', '', '', '')
Incorrect integer value: '' for column 'quantity2' at row 1

در صورتی هم که به شکل زیر می نویسم: ( داخل `)

$sql = "INSERT INTO services (name, size, quantity1, price1, quantity2, price2, quantity3, price3, quantity4, price4)
VALUES (`$service_name`, `$service_size`, `$service_quantity1`, `$service_price1`, `$service_quantity2`, `$service_price2`, `$service_quantity3`, `$service_price3`, `$service_quantity4`, `$service_price4`)";

این ارور رو میده:

Error: INSERT INTO services (name, size, quantity1, price1, quantity2, price2, quantity3, price3, quantity4, price4) VALUES (`اسم`, `123`, `24`, `343`, ``, ``, ``, ``, ``, ``)
Unknown column 'اسم' in 'field list'

(نکته1: ورودی هارو فرضی زدم و هر بار متفاوته به اون توجه نکنید :) ).
(نکته 2: همونطور که می بینید فیلد هارو ناقص پر کردم موقع ارسال فرم ولی وقتی کامل پرمیکنم ارسال و ثبت میشه اما بعضی وقت ها "لازمه" که ناقص پر بشن و متغیر های خالی چیزی ثبت نکنن در جدول دیتابیس).

با تشکر

Farshid007
جمعه 09 بهمن 1394, 18:05 عصر
اگه با phpmyadmin جدول ساختید در هنگام ایجاد جدول تیک NULL رو برای فیلد های که میتوانند مقدار خالی بگیرند فعال کنید
اگه جدولتونم با کد SQL ایجاد میکنید عبارت NULL رو بعد از نام هر ستون بزارید
مثال:

CREATE TABLE `bookorama`.`comments` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`bookid` INT( 6 ) NOT NULL ,
`fName` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL ,
`email` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL ,
`comment` VARCHAR( 600 ) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL ,
`dateTime` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_persian_ci;