2011-06-18 41 views
9

Tôi muốn gửi một giá trị "NULL" đến một cột trong mySQL.Làm thế nào để bạn gửi NULL dưới dạng biến từ PHP sang SQL?

$ParentEventID = "NULL"; 

    mysql_query("UPDATE events SET 
    ParentEventID = '$ParentEventID'"); 

Cột giữ mặc định là "0". Tôi đã thiết lập cột để chấp nhận NULL và tôi có thể chỉnh sửa ô bằng hộp kiểm NULL.

Tôi không cần đặt mặc định thành NULL vì nó có thể ảnh hưởng đến mã ở những nơi khác.

+0

+1 Đối với câu hỏi có vẻ như Câu hỏi thường gặp nhưng tôi chưa bao giờ thấy nó trên SO trước đây. –

Trả lời

15

Bạn đang đi đúng hướng để tạo "NULL" một chuỗi. Nếu bạn cần thiết lập nó NULL, sau đó loại bỏ các qoutes xung quanh $ParentEventID.

mysql_query("UPDATE events SET ParentEventID = $ParentEventID"); 

Tuy nhiên, trước khi làm như vậy hãy đảm bảo rằng giá trị của $ParentEventID === NULL.

+0

Tuyệt vời! Điều đó đã làm điều đó. Vì vậy ... bằng cách loại bỏ các dấu ngoặc kép chính xác những gì đang xảy ra? -OK Tôi thấy báo giá làm cho nó một chuỗi. Cảm ơn các bạn. Tôi sẽ chấp nhận câu trả lời của bạn khi SO cho phép tôi trong 10 phút – Joel

+0

Điều gì đang xảy ra là null trong SQL không phải là chuỗi '" NULL "', nhưng từ khóa 'NULL'. Vì vậy, bạn đặt điều đó, không có dấu ngoặc kép, vào truy vấn. Cũng giống như cách bạn không đặt dấu ngoặc kép quanh từ khóa 'UPDATE'. Hãy nhớ rằng, bạn không thực sự "gửi" bất cứ điều gì: bạn chỉ cần tạo một truy vấn SQL trong một chuỗi PHP. –

+3

@Joel bằng cách loại bỏ các dấu nháy đơn, chuỗi 'NULL' được chuyển thành từ khóa MySQL' NULL'. Nếu bạn giữ dấu nháy đơn là ''NULL'', MySQL sẽ diễn giải nó như một giá trị chuỗi. Nếu nó đang đi vào một cột số nguyên hoặc một cột boolean, tôi đoán đó là đang được hiểu là giá trị '0'. –

Các vấn đề liên quan