繁体   English   中英

PHP PDO Mysql错误1064插入

[英]Php PDO Mysql error 1064 inserting

确实要与这些该死的语法错误作斗争。 如果有人看到这有什么问题,请告诉我:

请求参数

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

数组的Print_R已传递

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

错误:

<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