2013-07-07 87 views
1

真的很難與這些該死的語法錯誤。如果任何人都可以看看有什麼不對的請告訴我:Php PDO Mysql錯誤1064插入

查詢字符串

陣列的
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> 

回答

4

Desc是一個關鍵詞。要將其作爲列名使用反引號

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

唉!非常感謝。 – user1763295

4

最好的做法是對所有表名和列名使用反標記,這樣您就永遠不會遇到關鍵字問題。

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