Intereting Posts
Необходимость просмотра офисных документов MS в системе управления документами на базе php Как сериализовать форму, хранящуюся в переменной jQuery PHP-CodeIgniter: как получить соответствующие значения строк таблицы html, которые будут удалены с помощью Javascript В чем разница между | и || или операторов? Как обрезать весь код ведущего / конечного кода, используя php как узнать, существует ли файл в текущем дереве каталогов hasMany проблема отношений в Laravel 5.3 + библиотека MongoDB 'jenssegers / laravel-mongodb' Я не могу найти dompdf_config.inc.php или dompdf_config.custom.inc.php для установки «DOMPDF_UNICODE_ENABLED» true GET весь div с его элементами и отправить его с помощью функции php mail Ошибка подключения сервера Apache FastCGI Поиск подмножеств массива в PHP Создание форм с помощью Symfony 2.8 приводит к тому, что Twig_Error_Runtime PHP SoapClient, создающий XML-ссылки для идентичных элементов, делает его неприемлемым для обслуживания .htaccess вызывает проблемы в подпапках Вставить арабский текст MySQL

Чтобы понять запросы в PHP PG -подготовленные statemens

Как вы читаете следующий код о pg_query_params и pg_prepare ?

 $result = pg_query_params ( $dbconn, "SELECT flagged_for_moderator_removal // unsure about Repetition here FROM questions WHERE question_id = $1", array ( $_GET['question_id'] ) ); if ( pg_num_rows ( $result ) == 0 ) { $result = pg_prepare ( $dbconn, "get_flagged_status_list", "SELECT flagged_for_moderator_removal // unsure about Repetition here FROM questions WHERE question_id = $1" ); } 

Этот вопрос связан с моей нитью, где я не хочу объявлять дважды подготовленное заявление.

Разница между утверждениями заключается в том, что у другого есть имя get_flagged_status_list , а другое – нет. Я понимаю код следующим образом

 Iteration | 1 2 ---------------------------------------------------------------------- run pg_query_params run pg_qeury_params run pg_prepare run pg_execute run pg_execute 

Однако это неверно, так как код запускает pg_prepare на второй итерации. 1.

Ваш опубликованный пример не имеет смысла – pg_prepare() и pg_query_params() являются независимыми функциями с разными целями, которые вы обычно не использовали бы совместно.

pg_prepare() готовит оператор (запрос) для последующего выполнения через pg_execute() . Это делается как потенциальная оптимизация – если вы заранее знаете, что вам нужно будет выполнять оператор много раз подряд, подготовка его заранее может сэкономить некоторую работу на сервере базы данных, поскольку она не должна (повторно) готовиться утверждение для каждого вызова.

pg_query_params() (а также его «более простая» версия pg_query() ) просто выполняет оператор (запрос) напрямую, заставляя сервер базы данных (re) готовить инструкцию каждый раз при вызове функции.

Короче говоря, это

 $result = pg_query_params($query, $params); 

даст вам тот же результат, что и этот

 $statement = pg_prepare($query); $result = pg_execute($statement, $params); 

Единственное различие заключается в том, что во втором случае у вас все еще есть подготовленный оператор, готовый к повторному использованию для большего количества вызовов pg_execute() – вот почему вы можете присвоить ему имя, так как вы можете иметь разные подготовленные операторы на одном и том же соединение, которое вы можете выполнять, как вам угодно, много раз, в произвольном порядке.