2014-11-21 107 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函数( “'”, “”,$字符串)去;