在很多人告诉我这样做之后,我正在学习 PDO。但是,在更新我的一个脚本时,PDO 给我带来了一个我不确定如何解决的问题。
我的问题是用户将标题输入网站。说出它的“史密斯库存”。
由于整个PDO切换,它在数据库中保存为“Smith\'s Inventory”。这是我网站上各个地方的输出。如页眉、html 标题和设置文本框。如果您再次单击带有\' 的保存,则会得到\\',依此类推。
我明白为什么会这样,但如何解决?
这是插入代码:
foreach ($_POST as $key => $value)
{
$sql = $dbh->prepare("UPDATE settings set value=? where variable=?");
$sql->bindParam(1, $value);
$sql->bindParam(2, $key);
$sql->execute();
}
echo '<h2><font color=green>Saved</font></h2>';
最佳答案
看起来你在双重转义数据。
最可能的原因是:
- 您的 PHP 安装启用了魔术引号 — best to turn them off
- 您正在使用诸如 mysql_real_escape_string 之类的东西和带有占位符的准备语句——仅使用后者
关于php - 在文本框中保存 ' to database, i get\' 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14341981/