2014-11-21 57 views
0

您好我正在使用PHP插入一些數據到一個MS Access數據庫,它在大多數情況下工作正常,只有它不工作,據我所知是在哪裏有一個'在該領域,在這種情況下,它的地址即聖約翰路。撇號導致插入問題

這是我使用的查詢語句:

$sql = "insert into tempaddress (`id`, `StreetAddress`, `Place`, `PostCode`) values ('".$item["Id"]."', '".$item["StreetAddress"]."', '".$item["Place"]."','$SearchTerm')"; CustomQuery($sql); 

這是我得到http://prntscr.com/58jncv

錯誤我相當肯定它只能是「字符串中的文本是搞砸了,我該怎麼改?

+3

http://bobby-tables.com/ – DoctorMick 2014-11-21 09:15:07

回答

0

撇號中斷SQL字符串。所以你應該在你的SQL字符串中的每個撇號之前手動添加斜槓或使用PHP的內置函數addslashes()

例子:

$sql = "INSERT INTO myTable (value) VALUES ('Text that shouldn't break')"; 

$sql = addslashes($sql); // outputs "INSERT INTO myTable (value) VALUES ('Text that shouldn\\'t break')" 

來源:php.net/manual/en/function.addslashes.php

-1

您正在使用 '' 報價與PHP變量$ SEARCHTERM和前列名使用反斜槓。

更改您的查詢語句如下:

$sql = "insert into tempaddress (\`id\`, \`StreetAddress\`, \`Place\`, \`PostCode`) values ('".$item["Id"]."', '".$item["StreetAddress"]."', '".$item["Place"]."',$SearchTerm)"; CustomQuery($sql); 
+0

它不是搜索條件是打破它的'「。$ item [」StreetAddress「]」' – Simon79 2014-11-21 09:28:52

+0

沒有必要逃脫列! – DarkBee 2014-11-21 10:09:18

0

謝謝你,我到底有str_replace函數( 「'」, 「」,$字符串)去;