Intereting Posts
PHP MySql: окно «Печать дерева – родительский ребенок» PHP-скрипт порождает запросы к бесконечному циклу Импорт CSV-данных с использованием PHP / MySQL Ошибка HTTP-запроса! HTTP / 1.1 503 Услуга временно недоступна Сколько символов @ может быть в адресе электронной почты? изменение локального ключа реестра с помощью PHP как запрашивать имена столбцов таблицы Как получить базу данных данных без перезагрузки страницы? Неустранимая ошибка: require_once () : Не удалось открыть окно '__DIR__ Печать всех определенных переменных и значений Санитария для URL-адреса, используемого в заголовке: местоположение? Должны ли разработчики PHP использовать хранимые процедуры MySQL? Передача нескольких переменных на другую страницу в URL-адресе Как рассчитать среднее значение по рейтинговой системе? Получить высоту и ширину изображения как целочисленные значения?

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

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

В документации 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();