ฉันต้องการตั้งค่าเป็นNULL
ถ้าไม่มีอะไรใส่ลงในกล่องข้อความในแบบฟอร์มที่ฉันกำลังส่ง ฉันจะทำให้สิ่งนี้เกิดขึ้นได้อย่างไร ฉันได้ลองแทรกแล้ว'NULL'
แต่เพียงแค่เพิ่มคำNULL
ลงในฟิลด์
ฉันไม่แน่ใจว่าควรใส่รหัสอะไรสำหรับสิ่งนี้ฉันแค่เขียนแบบสอบถาม UPDATE
ฉันต้องการตั้งค่าเป็นNULL
ถ้าไม่มีอะไรใส่ลงในกล่องข้อความในแบบฟอร์มที่ฉันกำลังส่ง ฉันจะทำให้สิ่งนี้เกิดขึ้นได้อย่างไร ฉันได้ลองแทรกแล้ว'NULL'
แต่เพียงแค่เพิ่มคำNULL
ลงในฟิลด์
ฉันไม่แน่ใจว่าควรใส่รหัสอะไรสำหรับสิ่งนี้ฉันแค่เขียนแบบสอบถาม UPDATE
คำตอบ:
อย่าใส่NULL
เครื่องหมายคำพูดไว้ในใบแจ้งการอัปเดตของคุณ สิ่งนี้ควรใช้งานได้:
UPDATE table SET field = NULL WHERE something = something
Static analysis: 1 errors were found during analysis. Unrecognized keyword. (near "NULL" at position 35) SQL query: UPDATE programs SET flash = NULL
. - อัปเดต: เป็นWHERE
เงื่อนไขต่อไปนี้ที่ทำให้เกิดปัญหา!
คุณอาจอ้างถึง "NULL" NULL เป็นคำสงวนใน MySQL และสามารถแทรก / อัปเดตโดยไม่มีเครื่องหมายคำพูด:
INSERT INTO user (name, something_optional) VALUES ("Joe", NULL);
UPDATE user SET something_optional = NULL;
UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''
if (($_POST['nullfield'] == 'NULL') || ($_POST['nullfield'] == '')) {
$val = 'NULL';
} else {
$val = "'" . mysql_real_escape_string($_POST['nullfield']) . "'";
}
$sql = "INSERT INTO .... VALUES ($val)";
ถ้าคุณใส่'NULL'
ลงในแบบสอบถามของคุณคุณก็แค่แทรกสตริง 4 อักขระ หากไม่มีเครื่องหมายคำพูดNULL
เป็นค่าว่างที่แท้จริง
ใช้NULL
(โดยไม่มีเครื่องหมายคำพูดรอบตัว)
UPDATE users SET password = NULL where ID = 4
คุณควรแทรกnull
ไม่ใช่สตริงของ'NULL'
.
สมมติว่าคอลัมน์อนุญาตการตั้งค่าว่าง
$mycolupdate = null; // no quotes
ควรทำเคล็ดลับ
$mycolupdate
เป็นสตริงในภายหลัง
คำตอบที่ให้ไว้ที่นี่ดี แต่ฉันยังคงดิ้นรนเพื่อโพสต์ NULL และไม่ใช่ศูนย์ในตาราง mysql
ในที่สุดฉันก็สังเกตว่าปัญหาอยู่ในแบบสอบถามแทรกที่ฉันใช้
$quantity= "NULL";
$itemname = "TEST";
จนถึงตอนนี้ดีมาก
ข้อความค้นหาของฉันไม่ถูกต้อง
mysql_query("INSERT INTO products(quantity,itemname)
VALUES ('$quantity','$itemname')");
ฉันแก้ไขแบบสอบถามเพื่ออ่าน
mysql_query("INSERT INTO products(quantity,itemname)
VALUES ('".$quantity."','$itemname')");
ดังนั้น $ quantity จึงอยู่นอกสตริงหลัก ตาราง sql ของฉันได้รับการยอมรับในการบันทึกปริมาณว่างแทน 0
ปัญหาที่คุณพบน่าจะเป็นเพราะ mysql แยกความแตกต่างระหว่าง null ที่เขียนด้วยตัวพิมพ์ใหญ่และ null ที่เขียนด้วยตัวพิมพ์เล็ก
ดังนั้นหากคุณใช้คำสั่ง update ด้วย null มันจะไม่ทำงาน หากคุณตั้งค่าเป็น NULL ก็จะทำงานได้ดี
ขอบคุณ
null
โดยไม่มีเครื่องหมายคำพูด ..