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

PHP String position handling names with apostrophes

如果数据库中有一个名称(即 O'Reilly),我创建插入语句以通过 PHP 脚本中的 SQL 查询将此名称插入数据库,它将导致错误,因为名称中的撇号将结束字符串并导致查询失败('O'Reilly')。有没有办法使用 strpos() 找到这些撇号并将它们替换为 dash/space/comma/etc.

我试过了

$pos = strpos($value, "'"); 

if($pos!==false)
{
  $value[$pos] = "-"; 
}

但是在某些专栏中,这将替代我想要的内容。 我希望得到更像

的东西
$pos = strpos($value, "char'char"); 

if($pos!==false)
{
  $value[$pos] = "-"; 
}

单词 "char" 被替换为一些字母数字指示符,以便脚本知道只替换名称中的撇号。在 PHP 中有没有办法做到这一点?

这个问题与SQL注入无关,我只是想处理其中带有撇号的字符串。

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

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

尝试 addslashes 转义斜杠。

$string = addslashes($value);