2014-02-17 69 views
0

今天我試圖做幾個查詢時得到了一個不尋常的響應,這裏是錯誤輸出。綁定參數時出現SQLState錯誤

[17-Feb-2014 12:37:24 America/Denver] PHP Warning: PDOStatement::execute(): 
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 'key = 'AH3D'' at line 1 in file on line 28 

這裏是我使用的代碼,這是我怎麼總是做了。

public function get($key = null) { 
    $get = $this->conn->prepare("SELECT url FROM urls WHERE key = :get"); 
    $get->execute(array(':get' => $key)); 
    return $get->fetch(); 
} 

我如何調用函數。

echo $tiny->get($_GET['key']); 
+0

可能重複一個mysql保留關鍵字如在MySQL]表或列名(http://stackoverflow.com/questions/23446377/syntax-error-due-to-using-a-reserved-word-as-a-table-or-column-name-在MySQL的) –

回答

1

重點是你需要使用,由於使用保留字背蜱角落找尋你的列名[語法錯誤key

$get = $this->conn->prepare("SELECT url FROM urls WHERE `key` = :get"); 

Mysql Reserved Words

+1

非常感謝,我用ŧ Ø放回蜱但隨後停止,因爲我認爲他們什麼也沒做。我將不得不重新開始做和關鍵術語讀了。 – julienhaversano

+0

一個好的做法是使用back-ticks,它可以爲這類錯誤節省時間,並且如果您發現這個答案爲helpfull,那麼請閱讀[接受答案:它是如何工作的?](http://meta.stackexchange.com /問題/ 5234 /如何-不接受-的回答工作/ 5235#5235) –

+1

@downvoters ATLEAST表現出一定的尊重,提供您如何使答案更良好的反饋 –

相關問題