Итерация результатов из mysqli_execute_query [закрыто]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Итерация результатов из mysqli_execute_query [закрыто]

Сообщение Anonymous »

Я пытаюсь перейти от прямых mysqli_queries к подготовленным операторам. Я могу принять запрос с помощью mysqli_execute_query, но у меня возникли проблемы с возвратом результатов. Существует ли прямой эквивалентный метод для замены mysqli_num_rows, mysqli_fetch_array, mysqli_num_fields, mysqli_fetch_field_direct?
Все, что я пробовал до сих пор, возвращает NULL.
(После некоторого поиска я нашел это на другой форум, который объясняет, почему у меня возникла проблема, но не дает немедленного решения: Протокол клиентского сервера MySQL определяет другой протокол передачи данных для подготовленных операторов и неподготовленных операторов. Подготовленные операторы используют так называемый двоичный протокол. Сервер MySQL отправляет данные набора результатов «как есть» в двоичном формате.)
Все начинается с формы поиска, которая имеет более 40 возможных записей, некоторые для поиска, некоторые для вещи для вывода. При отправке формы сканируются почтовые переменные и запрос строится на лету.
Запрос отправляется и обычно возвращает несколько строк, каждая из которых содержит список имен столбцов и значений. Приведенный ниже пример кода сканирует эти возвращенные данные, первоначально ища имена столбцов и получая их позицию в строке.
Проблема, с которой я столкнулся, заключается в том, что mysqli_query и mysqli_execute_query не возвращают данные, структурированные одинаково, и я не понимаю, как читать результаты mysqli_execute_query.
Часть существующего кода:
$initial_run=true;
$last_familynum=-1;
while($row=mysqli_fetch_array($result))
{
// var_dump($row);
if ($initial_run)
{
// scan field names, check they are needed for output
// add the field numbers to $fieldarray[$index]
// note the field numbers of special values in tag variables
$tag_email_breakout=-1;
$tag_verbose_email=-1;
$tag_expires=-1;
$tag_newcard=-1;
$tag_joined=-1;
$tag_familynum=-1;
$tag_no_send_email=-1;
$tag_email=-1;
// $c="";
$num_fields=mysqli_num_fields($result);
// debug("header contains $num_fields column names
");
for ($index=0; $index name;
// echo "field_name=$field_name
";
if ($field_name == "email_breakout") { $tag_email_breakout=$index; }
if ($field_name == "verbose_email") { $tag_verbose_email=$index; }
if ($field_name == "expires") { $tag_expires=$index; }
if ($field_name == "newcard") { $tag_newcard=$index; }


Подробнее здесь: https://stackoverflow.com/questions/790 ... cute-query
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»