INSERT INTO `semicolon` VALUES ('1', 'a:1:{s:4:\"size\"';\s:2:\"24\";\}');
正如你可能在雙單引號沒有看到; - 分號,它分割代碼,因爲它的執行符號。
我得到一個語法錯誤消息,否則沒有; - 分號它工作正常。如果使用像phpmyadmin或navicat這樣的軟件,即使使用分號也行。
問題是如何解決它在php文件中運行?
INSERT INTO `semicolon` VALUES ('1', 'a:1:{s:4:\"size\"';\s:2:\"24\";\}');
正如你可能在雙單引號沒有看到; - 分號,它分割代碼,因爲它的執行符號。
我得到一個語法錯誤消息,否則沒有; - 分號它工作正常。如果使用像phpmyadmin或navicat這樣的軟件,即使使用分號也行。
問題是如何解決它在php文件中運行?
實際上'
正在拆分代碼。與\'
INSERT INTO semicolon VALUES ('1', 'a:1:{s:4:\"size\"\';\s:2:\"24\";}');
'
逃避它是SQL字符串分隔符。 SQL引擎的東西以字符串結尾'
。
這是由於你的單引號,不是你的分號:
INSERT INTO semicolon VALUES ('1', 'a:1:{s:4:\"size\"';\s:2:\"24\";}');
-----------------------------------------------------^
這就像是php錯誤而不是mysql錯誤。 – JackWill 2012-03-22 06:05:53
@JackWill發佈你的PHP代碼然後,你只給了我們一個mysql插入 – GoldenNewby 2012-03-22 06:09:04
你爲什麼不使用mysql_real_escape_string()和你爲什麼對插入正常化序列化的陣列? – 2012-03-22 05:47:41
爲什麼你的表名稱分號...? – 2012-03-22 05:51:27
@Dagon,因爲本網站上的每個friggin答案都表示使用mysql_real_escape_string()來「保護用戶數據免受嚇到的SQL注入」。所以,當沒有用戶數據或沒有危險時,沒有人會介意這個功能。 – 2012-03-22 05:57:52