Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

В 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();