2011-01-21 23 views
1

查看PHP手冊,在任何時候都不會建議在列上包含重音符號。PDOStatement - 在列中使用重音符號(`)?

例如:最近,我試圖運行下面的功能:

 $pdo->prepare("UPDATE name_table SET convert= :convert, payment = :payment WHERE id = :id")

反覆嘗試後,試圖更新MySQL的數據,我注意到,轉換功能是本機的MySQL的函數。

所以在這之後,把在列反引號和它的工作:

 $pdo->prepare("UPDATE name_table SET `convert`= :convert, `payment` = :payment WHERE id = :id")


有誰相信重音符是不是對象PDOStatements必不可少的?剛剛嘗試MySQL,但不知道是否真的很好使用反引號來進一步更改數據庫。

+0

如果你停止使用保留字作爲列名,你可以停止輸入所有那些煩人的非ansi反引號。 – 2011-01-22 03:16:47

回答

2

正如你所說,你的查詢不起作用,因爲CONVERT是mySQL中的reserved word,並且每當使用保留字的列名或具有其他奇怪特徵時,都需要用反引號將它們包裝起來。

對每個列和表名使用反引號沒有什麼壞處。只是不要在數據上使用它們 - 這是行不通的。對於數據,請使用引號。

@Beau的回答後編輯:請注意,這僅適用於mySQL!

+0

謝謝,夥計。我相信你。我搜查了PHP手冊並沒有出現在那裏...因此,我懷疑是否真的有必要使用反引號。謝謝! – Vegetus 2011-01-21 23:41:27

3

我會想象反引號並不需要或提及,因爲它們是特定於mysql,PDO被設計爲與任何RDMS一起使用。

+0

啊,這是一個很好的觀點! * * PDO是否有解決方案?據我所知,不可能綁定列名稱。 – 2011-01-22 02:05:49

相關問題