我有一个问题,我正在尝试将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的html textarea插入此代码($ _POST)
<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");
插入不带反斜杠的代码。
答案 0 :(得分:1)
PDO与此无关。它的安全功能完美无瑕。
您自己magic quotes的general purpose sanitizing function 只是摆脱他们两个。