2015-08-27 59 views
2

我有一些PHP代碼,我試圖從MySQL端口到MonetDB。代碼使用ODBC,因此理論上它應該是更改驅動程序的情況。在MonetDB中引用

這裏是由PHP生成的SQL的例子,發送到數據庫:

SELECT mycolumn FROM foo WHERE bar="123"; 

不幸的是MonetDB使用不同的報價慣例到MySQL:列名需要用雙引號,值單引號。所以它會期望:

SELECT "mycolumn" FROM foo WHERE bar='123'; 

而不是通過數千行PHP代碼修復所有這些,是否有任何簡單的方法來解決這個問題? ODBC可以奇蹟般地修復引號,或者MonetDB有一個配置選項來允許它?

回答

0

這個問題沒有神奇的修復或標誌,只是努力工作或骯髒的黑客。請注意,如果列(和表)名稱包含保留字符或由保留字組成,則只需引用它們。因此,更改字符串引號可能就足夠了。在ODBC上生成這些查詢的正確方法是準備語句,其中的引號實際上是自動添加的。但是,我不確定在這種情況下使用PHP時,MonetDB ODBC驅動程序會執行什麼操作。