简体   繁体   English

PHP PDO Mysql错误1064插入

[英]Php PDO Mysql error 1064 inserting

Really struggling with these damn syntax errors. 确实要与这些该死的语法错误作斗争。 If anyone can see what's wrong with this please tell me: 如果有人看到这有什么问题,请告诉我:

Query string 请求参数

INSERT INTO Categories (ParentId,Title,Desc) VALUES (?,?,?)

Print_R of array passed 数组的Print_R已传递

Array
(
    [0] => 1
    [1] => Lolcats
    [2] => an entire category dedicated to the language, lolcats!
)

Error: 错误:

<b>Fatal error</b>:  Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 'Desc) VALUES ('1','Lolcats','an entire category dedicated to the language, lolca' at line 1' in /usr/www/maxtingle/Blog/System/Core/Functions.php:168
Stack trace:
#0 /usr/www/maxtingle/Blog/System/Core/Functions.php(168): PDOStatement-&gt;execute(Array)
#1 /usr/www/maxtingle/Blog/System/Core/Category.php(12): Functions\Database-&gt;Insert('(ParentId,Title...', 3, Array)
#2 /usr/www/maxtingle/Blog/System/Category.php(9): Categories::CreateCategory(Object(CategoryIns))
#3 [internal function]: Category::Create()
#4 /usr/www/maxtingle/Blog/index.php(52): call_user_func_array(Array, Array)
#5 {main}
  thrown in <b>/usr/www/maxtingle/Blog/System/Core/Functions.php</b> on line <b>168</b><br>

Desc是关键字,要将其用作列名,请使用反引号

INSERT INTO Categories (ParentId,Title,`Desc`) VALUES (?,?,?)

最佳做法是对所有表名和列名使用反引号,这样您就永远不会遇到关键字问题。

INSERT INTO `Categories` (`ParentId`,`Title`,`Desc`) VALUES (?,?,?)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM