您好我正在使用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
我很确定它只能是'在字符串文本中弄乱它,我怎么能改变?
答案 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')"
答案 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);