使用 PDO 时应该使用 addslashes 函数吗?
Should I use addslashes function when I using PDO?
听说PDO可以自动防御注入攻击。
所以,我可以在没有 ' 标记的情况下进行查询。
那么,我在使用PDO时是否应该使用addslashes函数?
我的意思是...
<?php
$s = $d->prepare("SELECT * FROM `table` WHERE `no`=:n");
$s->bindParam(":n", $data);
$data = $_GET["param"];
$s->execute();
?>
或
<?php
$s = $d->prepare("SELECT * FROM `table` WHERE `no`=:n");
$s->bindParam(":n", $data);
$data = addslashes($_GET["param"]);
$s->execute();
?>
不,您不必使用它。当您使用像 bindParam
这样的准备语句时,数据库引擎会自动为您完成。
听说PDO可以自动防御注入攻击。 所以,我可以在没有 ' 标记的情况下进行查询。
那么,我在使用PDO时是否应该使用addslashes函数?
我的意思是...
<?php
$s = $d->prepare("SELECT * FROM `table` WHERE `no`=:n");
$s->bindParam(":n", $data);
$data = $_GET["param"];
$s->execute();
?>
或
<?php
$s = $d->prepare("SELECT * FROM `table` WHERE `no`=:n");
$s->bindParam(":n", $data);
$data = addslashes($_GET["param"]);
$s->execute();
?>
不,您不必使用它。当您使用像 bindParam
这样的准备语句时,数据库引擎会自动为您完成。