撇号导致插入问题

时间:2014-11-21 09:10:58

标签: php

您好我正在使用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 个答案:

答案 0 :(得分: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 :(得分:0)

谢谢,最后我选择了str_replace("'","",$ string);

答案 2 :(得分:-1)

您正在使用php变量$ SearchTerm的''引用,并在列名前使用反斜杠。

将查询语句更改为:

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