2013-07-12 71 views
0

我在遇到SQL查詢時遇到了問題。 SQL語句已通過mysqli_real_escape_string,但我仍然收到SQL語法錯誤。該代碼適用於99.9%的網站,但以下不起作用。這可能很簡單,但我無法發現它。任何幫助將不勝感激。mysqli更新查詢中的語法錯誤

"UPDATE text_t SET copy=\'<table cellspacing=3>\r\n <tr><td class=\"infogrey\">Secretary</td><td class=\"infogrey\">Some Name</td><td class=\"infogrey\">Telephone: 01794 123456 <br><a href=\"contact.php?type=Contact_Secretary\" target=\"content\" class=\"infogrey\" onMouseOver=\"window.status=\'contact\'; return true\" onMouseOut=\"window.status=\'\'; return true\"><strong>Email Some Name</strong></a></td></tr>\r\n <tr><td class=\"infogrey\">Chairman</td><td class=\"infogrey\">Some Name</td><td class=\"infogrey\"><a href=\"contact.php?type=Contact_Chairman\" target=\"content\" class=\"infogrey\" onMouseOver=\"window.status=\'contact\'; return true\" onMouseOut=\"window.status=\'\'; return true\"><strong>Email Some Name</strong></a></td></tr>\r\n\r\n <tr><td class=\"infogrey\">Club Kit</td><td class=\"infogrey\">Some Name</td><td class=\"infogrey\"><a href=\"contact.php?type=Club_Kit\" target=\"content\" class=\"infogrey\" onMouseOver=\"window.status=\'contact\'; return true\" onMouseOut=\"window.status=\'\'; return true\"><strong>Email Some Name</strong></a></td></tr>\r\n\r\n <tr><td colspan=2 class=\"infogrey\">For General queries </td> <td><a href=\"contact.php?type=General_Query\" target=\"content\" class=\"infogrey\" onMouseOver=\"window.status=\'contact\'; return true\" onMouseOut=\"window.status=\'\'; return true\"><b>Email Cycling Club</b></a></td></tr>\r\n <tr><td colspan=2 class=\"infogrey\">Any membership queries </td><td><a href=\"contact.php?type=Contact_Editor\" target=\"content\" class=\"infogrey\" onMouseOver=\"window.status=\'contact\'; return true\" onMouseOut=\"window.status=\'\'; return true\"><strong>Email Some Name</strong></a></td></tr>\r\n 
... </table>\' WHERE id=8" 
+0

您使用mysqli_real_escape_string的想法是錯誤的。 –

回答

1

由於您使用雙引號"包裹的查詢字符串,你不應該逃脫兩個單引號'列副本:

$query = "UPDATE text_t 
    SET copy='" . mysqli_real_escape_string($dblink, $string) . "' 
    WHERE id=8"; 

也像你可能想在PHP中修改mysqli_real_escape_string PHP函數和difference between single and double quotes

+0

我試圖修復繼承的代碼,並忽略了整個SQL被轉義而不僅僅是參數的事實。謝謝 – Ian

+0

@歡迎您!它解決了這個問題嗎? –