Mysql_field_names в mysqli с использованием цикла

0

Мне нужно адаптировать скрипт PHP5 к PHP7. Я почти понял все, но я заблокирован на небольшой части функции запроса. Мой бывший коллега использовал функцию mysql_field_name, которая больше не доступна в PHP7.

Я попытался изменить код, но кажется, что он не работает.

Это исходный код:

$rep = mysql_query($query);
        if ($rep)
        {
            $i = 0;
            while($res = mysql_fetch_row($rep))
            {
                for($j=0; $j<count($res); $j++)
                $tabRes[$i][strtoupper(mysql_field_name($rep, $j))] = $res[$j];
                $i++;

            }
        }

Я попытался заменить mysql_field_name на mysqli_fetch_fields.

$rep = mysqli_query($this->conn_id,$query);;
        if ($rep)
        {
            $i = 0;
            while($res = mysqli_fetch_row($rep))
            {
               for($j=0; $j<count($res); $j++)
               $tabRes[$i][strtoupper(mysqli_fetch_fields($rep)->$j)] = $res[$j];              
               $i++;

            }
        }

Любая идея, как я могу исправить эту проблему?

Спасибо

Rflow

  • 0
    Примечание. Объектно-ориентированный интерфейс к mysqli значительно менее многословен, что облегчает чтение и аудит кода, и его нелегко спутать с устаревшим интерфейсом mysql_query . Прежде, чем вы слишком инвестируете в процедурный стиль, стоит переключиться. Пример: $db = new mysqli(…) и $db->prepare("…") Процедурный интерфейс является артефактом эпохи PHP 4, когда был представлен mysqli API, и его не следует использовать в новом коде.
  • 0
    Возможно, вы захотите переключиться на fetch_assoc который дает вам ассоциативный массив, что намного проще в использовании, чем необходимость извлечения полей вручную на индивидуальной основе.
Показать ещё 3 комментария
Теги:
mysqli
php-7

1 ответ

2

Проверьте mysqli_fetch_field_direct, который входит в число альтернатив после PHP7

Ещё вопросы

Сообщество Overcoder
Наверх
Меню