Что эквивалентно этим двум кодам в 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(); }