Intereting Posts
"Preg_match (): Ошибка компиляции: несогласованные скобки" в PHP для допустимого шаблона Использование временного, вращающегося хэша или строки для обеспечения безопасности HostGator не отправит почту через PHP SwiftMail API Библиотека поколения Heatmap для PHP Многие строки базы данных против одной строки разделенных запятыми строк Как сделать Symfony2 автозагрузкой моей routing.yml для моих пакетов, которые я создаю в папке поставщиков? Каков наилучший способ получить дробную часть float в PHP? Eloquent Left Join, получивший неожиданный результат PHP glob () для отображения файла, который не начинается с подчеркивания? Как проверить хэш UID на стороне сервера Apple AppReceipt в PHP? PHP-метод «month ()» генерирует неправильную дату DateTime Отображать определенное изображение в зависимости от конкретного текста в таблице MySQL с помощью PHP Счетчик Javascript на странице php ajax и php для ввода нескольких форм, вводимых в базу данных Как правильно реализовать пользовательский ajax

Выполняя тот же запрос PDO (с изменяющимися параметрами), я вызываю prepare () каждый раз или только один раз?

Я пытаюсь узнать, как использовать PDO, и мне нужна помощь в понимании чего-то.

Я продолжаю читать, что одним из самых больших преимуществ использования PDO является то, что он намного эффективнее, чем mysql_* при mysql_* подобных запросов снова и снова. Мне нужно сделать запрос точно таким же, за исключением того, что связанные параметры меняются каждый раз (но структура запроса такая же). Итак, вот мой вопрос:

Должен ли я позвонить PDO::prepare() один раз, а затем в мой цикл call execute() (передать массив параметров), или мне нужно вызывать PDO::preprare() каждый раз, когда цикл выполняется?

Благодаря!

Solutions Collecting From Web of "Выполняя тот же запрос PDO (с изменяющимися параметрами), я вызываю prepare () каждый раз или только один раз?"

Прямо из документов:

Вызов PDO :: prepare () и PDOStatement :: execute () для операторов, которые будут выдаваться несколько раз с разными значениями параметров, оптимизирует производительность вашего приложения, позволяя водителю согласовывать кеширование клиентов и / или серверов в плане запроса и метаинформации и помогает предотвратить атаки SQL-инъекций, устраняя необходимость вручную указывать параметры.

Поэтому вы вызываете только один раз и один раз вызываете выполнение внутри цикла.

Пример из документов:

 <?php /* 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(); $sth->execute(array(':calories' => 175, ':colour' => 'yellow')); $yellow = $sth->fetchAll(); ?> 

http://www.php.net/manual/de/pdo.prepare.php