перевод mysql_fetch_array в PDO :: FETCH_NUM

Что эквивалентно этим двум кодам в PDO

первый:

$row=mysql_fetch_array($query); 

второй:

  while($row=mysql_fetch_array($query)){ $data[]=$row; } в  while($row=mysql_fetch_array($query)){ $data[]=$row; } 

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

 $row = $query->fetch(PDO::FETCH_NUM); 

а также

  $data[] = $query->fetch(PDO::FETCH_ASSOC); 

Вот соответствия:

  • mysql_fetch_array = fetch(PDO::FETCH_BOTH) . Строки представляют собой массивы с числовыми и именованными индексами.
  • mysql_fetch_assoc = fetch(PDO::FETCH_ASSOC) . Строки представляют собой массивы с именованными индексами.
  • mysql_fetch_row = fetch(PDO::FETCH_NUM) – строки представляют собой массивы с числовыми индексами.
  • mysql_fetch_object = fetch(PDO::FETCH_OBJ) или fetch(PDO::FETCH_CLASS) зависимости от того, укажите ли вы необязательный аргумент mysql_fetch_object для mysql_fetch_object . Строки – это объекты, stdClass к указанному классу или stdClass .

Цикл while эквивалентен:

 $data = $query->fetchAll(PDO::FETCH_BOTH) 

Вы должны иметь возможность получить данные запроса в массиве с помощью этого:

 $data = $query->fetch(PDO::FETCH_BOTH); 

Если это не работает, ваше PDO-соединение, вероятно, не настроено правильно или ваш запрос не запускался. Вы можете попытаться устранить неполадки в запросе примерно так:

 try { $query->execute(); } catch (PDOException $e) { echo 'Query failed: ' . $e->getMessage(); }