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);
如果数据库中有一个名称(即 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);