如果数据库中有名称(即O' Reilly)并且我创建了insert语句以通过PHP脚本中的SQL查询将此名称插入到数据库中,则会导致错误,因为撇号在名称中将结束字符串并导致查询失败(' O' Reilly')。有没有办法使用strpos()来找到这些撇号并用短划线/空格/逗号/等替换它们。
我试过了
$pos = strpos($value, "'");
if($pos!==false)
{
$value[$pos] = "-";
}
但是在某些专栏中,这将取代我想要的内容。 我希望有更像
的东西$pos = strpos($value, "char'char");
if($pos!==false)
{
$value[$pos] = "-";
}
单词" char"被替换为一些字母数字指示符,以便脚本知道只替换名称中的撇号。有没有办法在PHP中这样做?
这个问题与SQL注入无关,我只是试图处理带有撇号的字符串。
答案 0 :(得分:0)
如果要替换字符串中的内容,只需使用str_replace()
$str = str_replace($str, "'", '-');
答案 1 :(得分:0)
尝试addslashes
以逃避斜杠。
$string = addslashes($value);