0

我有一个问题,我正在尝试将 html 数据插入到我的数据库中,但是当我插入它时,它会返回带有反斜杠的引号。(我认为这是一个 pdo 安全功能......但我怎么能禁用它呢?)。

PHP+PDO 代码是...

if(!empty($_POST['site_ads_right'])) {
  $update1 = $db->prepare("UPDATE ads SET custom_html = :html WHERE position = :pos");
  $update1->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
  $update1->bindValue(':html', $_POST['site_ads_right'], PDO::PARAM_STR);
  $update1->bindValue(':pos', 4, PDO::PARAM_INT);
  $update1->execute();
}

我正在尝试使用名为 site_ads_right for ($_POST) 的 html 文本区域插入此代码

<a href='http://www.example.com/index.php' target='_BLANK'><img src='img/content/a46adedac744f8f98b385ed392f92b3d_lll.jpg'></a>

但是当我插入它时,数据库的返回是......

<a href=\'http://www.example.com/index.php\' target=\'_BLANK\'><img src=\'img/content/a46adedac744f8f98b385ed392f92b3d_lll.jpg\'></a>

我需要在没有过滤器的情况下插入它,什么会放反斜杠......

谢谢。

好的,与...

$update1 = $db->query("UPDATE ads SET custom_html = '".$_POST['site_ads_right']."' WHERE position = 4");

插入不带反斜杠的代码。

4

1 回答 1

1

PDO is irrelevant here. It's security function doing its job flawless.

It's either magic quotes of your own general purpose sanitizing function.
Just get rid of them both.

于 2013-02-11T18:10:37.487 回答