PHP字符串位置处理带有撇号的名称

时间:2015-04-13 19:20:04

标签: php mysql char strpos alphanumeric

如果数据库中有名称(即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注入无关,我只是试图处理带有撇号的字符串。

2 个答案:

答案 0 :(得分:0)

如果要替换字符串中的内容,只需使用str_replace()

即可
$str = str_replace($str, "'", '-');

答案 1 :(得分:0)

尝试addslashes以逃避斜杠。

$string = addslashes($value);