嗨我有以下代码吗?我有另一个声明可以使用,但它是另一个表而没有project_id列。
(
[0] => 42000
[1] => 1064
[2] => 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 'change (title, description, project_id) VALUES ('Test1', 'Test1', '1')' at line 1
)
$sql = "INSERT INTO change (title, description, project_id) VALUES (:title, :description, :project_id)";
$query = $db->prepare($sql);
$query->execute(array(":title" => $title,
":description" => $description,
":project_id" => $row_id));
$arr = $query->errorInfo();
print_r($arr);
我哪里出错?
答案 0 :(得分:2)
始终将表格和字段名称封装在反引号中:
INSERT INTO `change` (`title`, `description`, `project_id`) VALUES (:title, :description, :project_id)
在这种情况下:CHANGE
是MySQL中的关键字,因此您的语句不会将其解释为表名。
答案 1 :(得分:0)
制作表时,请务必在此处查看mysql
中的保留关键字您的表名是保留关键字,这就是您遇到这些错误的原因。
使用反引号来解决问题。但我会建议您更改表名。
如果使用正常的qwerty或azerty键盘,有时人们发现很难找到反引号,它会高于你的tab键。