在 MySQL 中用撇号替换字符串运行查找和替换查询时

我有一个名为 my_table 的表,其中包含 2 个字段 ID 和 dbtext。


数据库中的字段有:


ID:1 dbtext:嗨,这是鲍比的东西


我正在尝试查找并替换 dbtext 字段中的文本。这是我的代码:


$findtext = 'Hi this is Bobby\'s Stuff';

$replacetext = 'Hi this is Larry\'s Stuff';


$findtext = stripslashes($findtext);

$replacetext = stripslashes($replacetext);




  $sql = "UPDATE my_table SET dbtext = REPLACE(dbtext,'" . $findtext . "','" . $replacetext . "') WHERE ID = '" . $ID . "' ";

$wpdb->query($sql);

不幸的是,当我去掉斜杠时,由于单引号破坏了查询,查询将无法运行。


但是,如果我不删除斜杠,查询将找不到匹配项,因为数据库中没有斜杠。


我该如何处理这个问题并确保它适用于单引号和双引号情况?



HUWWW
浏览 65回答 1
1回答

慕沐林林

Mysql 遵循三斜杠模式以提高安全性。尝试下面的代码$findtext = 'Hi this is Bobby\\\'s Stuff';$replacetext = 'Hi this is Larry\\\'s Stuff';  $sql = "UPDATE my_table SET dbtext = REPLACE(dbtext,'" . $findtext . "','" . $replacetext . "') WHERE ID = '" . $ID . "' ";$wpdb->query($sql);
打开App,查看更多内容
随时随地看视频慕课网APP