Tôi có các cột tên của chúng có cấu trúc nameUser.Name
, nhưng tôi đang gặp sự cố khi cập nhật chúng. Tôi đã thử một vài khả năng:Cập nhật cột MySQL có chứa dấu chấm (.) Trong tên
// Ideally, I'd like to do this (since the User.Name is 'dynamic', ie, it depends
// on who is logged in):
$userLogged = 'Some.User';
$columnName = 'name' . $userLogged;
mysql_query("UPDATE Industries SET '$columnName'='$name' WHERE id='$id'");
// Another try:
mysql_query("UPDATE Industries SET $columnName='$name' WHERE id='$id'");
// Alternatively, if the above cannot be achieved:
mysql_query("UPDATE Industries SET 'nameSome.User'='$name' WHERE id='$id'");
// Yet another try:
mysql_query("UPDATE Industries SET nameSome.User='$name' WHERE id='$id'");
Tuy nhiên, không có công trình nào ở trên. Tại sao?
Trên một lưu ý phụ, hãy cẩn thận bạn không kết thúc bằng việc tấn công [tấn công SQL injection] (http://en.wikipedia.org/wiki/SQL_injection#Incorrectly_filtered_escape_characters). – Jeroen
Đối với vấn đề của bạn, bạn có thể cần phải trích dẫn tên cột, câu trả lời có thể được tìm thấy tại [tài liệu MySQL này] (http://dev.mysql.com/doc/refman/5.5/en/identifiers.html), ở cái nhìn đầu tiên tôi muốn nói MySQL yêu cầu backticks (hoặc dấu ngoặc kép nếu biến thể ANSI được cho phép) xung quanh tên cột với các ký tự thời gian trong chúng. – Jeroen