为什么PHP的PDO ext不能自动转义输入?

时间:2011-08-06 22:56:38

标签: php pdo

为什么PHP PDO不能在一个单独的语句中绑定每个值,为什么PHP PDO不能有一些配置设置来逃避所有输入?

1 个答案:

答案 0 :(得分:4)

如果你单独绑定一切,那么你就是在艰难地做事。不。

$dbh = PDO->new(...);
$sth = $dbh->prepare("SELECT foo FROM bar WHERE baz = ?");
$sth->execute(array("this doesn't need to be escaped!"));
...

使用包装函数可以使这更容易:

function dbQuery($sql /* ... */) {
    global $dbh;
    $args = func_get_args();
    array_shift($args);
    $sth = $dbh->prepare($sql);
    $sth->execute($args);
    return $sth;
 }

 $sth = dbQuery("SELECT foo FROM bar WHERE baz = ? AND qux != ?", "blah", "blah blah");
 ...
相关问题