将mysql_fetch_array转换为PDO :: FETCH_NUM

问题描述:

这两个代码在PDO中是等效的

What is the equivalent of these two code in PDO

第一:

  $row=mysql_fetch_array($query);

秒:

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

我在下面使用了这些代码,但我猜它们并不完全相同,因为其余代码无法正常工作.

i used these codes below but they are not exact same i guess, because the rest of the code didn't work.

$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指定了可选的className参数.这些行是指定类或stdClass的对象.
  • mysql_fetch_array = fetch(PDO::FETCH_BOTH) - The rows are arrays with both numeric and named indexes.
  • mysql_fetch_assoc = fetch(PDO::FETCH_ASSOC) - The rows are arrays with named indexes.
  • mysql_fetch_row = fetch(PDO::FETCH_NUM) - The rows are arrays with numeric indexes.
  • mysql_fetch_object = fetch(PDO::FETCH_OBJ) or fetch(PDO::FETCH_CLASS) depending on whether you specify the optional className argument to mysql_fetch_object. The rows are objects, either of the specified class or stdClass.

while循环等效于:

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