@@SESSION.sql_mode;
@@GLOBAL.sql_mode;
都出現空白,my.cnf不顯示「NO_BACKSLASH_ESCAPE」標誌,這是查詢的一部分,它運行在本地服務器上,但不在我的主服務器上。MySQL添加額外的反斜槓?
UPDATE `table`
SET `data` = "[{\"_talent\'s\"etc"
現在我知道我可以用「[{」「_talents」,「等」,但我寧願不要,因爲它是更容易爲我保持到一直工作之前我目前逃逸的安全方法。
字符集是我正在更新的表的UTF-8。最奇怪的是,它插入但不更新!
這一個真的讓我撓。有任何想法嗎?
乾杯
編輯:
我發現了該服務器試圖解釋,像這樣的查詢:
Failed to execute SQL : SQL UPDATE `build` SET `data` = "[{\"_talent\'s" WHERE `build_id` = 1 AND `userId` = 1128; failed : 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 'UPDATE `build` SET `data` = "[{\\"_talent\\'s" WHERE `build_id` = 1 AND `userId`' at line 1
但它肯定應該是一樣的,爲什麼是SQL引擎逃脫我的逃跑! (如果我離開了逃逸查詢仍然失敗)
** Blackslash ** ...是黑色安息日和槍炮與玫瑰的組合嗎?請原諒雙關。不能幫助自己。 – froeschli 2011-03-02 11:32:47
哈哈,哎呀!謝謝 – Dorjan 2011-03-02 11:37:26
請有人可以幫忙,我會走出我的腦海。它適用於我的本地服務器,但不適用於Web服務器。網絡服務器似乎是兩次逃脫相同的聲明! :S – Dorjan 2011-03-02 12:46:44