php - 在文本框中保存 ' to database, i get\' 时

标签 php html mysql pdo

在很多人告诉我这样做之后,我正在学习 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/

相关文章:

php - MySQL 数组不返回任何内容/1

php - WordPress:按月对帖子进行分组?

php - TCPDF/HTML2PDF

excel - 使用Excel VBA在网页上的复选框

php - 尽管正确构建了查询,但 mysqli_query 无法在 php 中工作

MySQL 查询产生空集

mysql - 简化mysql递归查询

php - 给html添加滚动条

javascript - 如何删除 JScrollPane 的特定行?

javascript - jQuery 切换和 for every 循环问题