Почему PHP PDO ext не может автоматически избежать ввода? - PullRequest
0 голосов
/ 07 августа 2011

Вместо того, чтобы связывать каждое значение отдельным оператором, почему PHP PDO не может иметь какой-либо параметр конфигурации, чтобы просто экранировать весь ввод?

1 Ответ

4 голосов
/ 07 августа 2011

Если вы связываете все индивидуально, вы делаете вещи трудным путем. Не.

$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");
 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...