PHP PDO подготовил заявления - PullRequest
       14

PHP PDO подготовил заявления

31 голосов
/ 22 сентября 2009

Мне сказали сегодня, что я действительно должен использовать PDO и подготовил заявления в своем приложении. Хотя я понимаю преимущества, я изо всех сил пытаюсь понять, как внедрить их в свой рабочий процесс. Помимо того, что это делает код намного чище, должен ли я иметь определенный класс базы данных, в котором размещены все мои подготовленные операторы, или я должен создавать один каждый раз, когда хочу выполнить запрос? Мне очень трудно понять, когда мне следует использовать стандартный запрос PDO, а когда я должен использовать подготовленный оператор. Будем весьма благодарны за любые примеры, советы или учебные ссылки.

1 Ответ

32 голосов
/ 22 сентября 2009

В документации pdo :: prepare () есть два замечательных примера.

Я включил их здесь и немного упростил.

Этот использует ? параметры. $dbh в основном объект PDO. И что вы делаете, это помещаете значения 150 и 'red' в первый и второй вопросительные знаки соответственно.

/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
                      FROM fruit
                      WHERE calories < ? AND colour = ?');

$sth->execute(array(150, 'red'));

$red = $sth->fetchAll();

Этот использует именованные параметры и немного сложнее.

/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
        FROM fruit
        WHERE calories < :calories AND colour = :colour';

$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));

$red = $sth->fetchAll();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...