Php 将mysql_fetch_数组转换为PDO::fetch_NUM

Php 将mysql_fetch_数组转换为PDO::fetch_NUM,php,mysql,pdo,Php,Mysql,Pdo,PDO中这两个代码的等价物是什么 第一: $row=mysql_fetch_array($query); 第二: while($row=mysql_fetch_array($query)){ $data[]=$row; } 我在下面使用了这些代码,但我想它们并不完全相同,因为其余的代码不起作用 $row = $query->fetch(PDO::FETCH_NUM); 及 您应该能够通过以下方式获取数组中的查询数据: $data = $query->fetch(P

PDO中这两个代码的等价物是什么

第一:

  $row=mysql_fetch_array($query);
第二:

 while($row=mysql_fetch_array($query)){
   $data[]=$row;
 }
我在下面使用了这些代码,但我想它们并不完全相同,因为其余的代码不起作用

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


您应该能够通过以下方式获取数组中的查询数据:

$data = $query->fetch(PDO::FETCH_BOTH);
如果这不起作用,您的PDO连接可能没有正确设置,或者您的查询没有运行。您可以尝试使用以下方法对查询进行故障排除:

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

以下是通讯:

  • mysql\u fetch\u数组
    =
    fetch(PDO::fetch\u两者)
    -行是同时具有数字索引和命名索引的数组
  • mysql\u fetch\u assoc
    =
    fetch(PDO::fetch\u assoc)
    -行是具有命名索引的数组
  • mysql_fetch_row
    =
    fetch(PDO::fetch_NUM)
    这些行是带有数字索引的数组
  • mysql\u-fetch\u对象
    =
    fetch(PDO::fetch\u-OBJ)
    fetch(PDO::fetch\u-CLASS)
    取决于是否为
    mysql\u-fetch\u对象
    指定可选的
    className
    参数。行是指定类或
    stdClass
    中的对象
while
循环相当于:

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

谢谢你的回答。我知道这个密码是有效的。然而,我正在寻找一个脚本,当我使用旧代码进行更改时,它的工作原理是相同的。因为剩下的代码非常长,如果我做了很多更改,我将不得不全部更改,所以您确信查询执行得很好吗?@RubyMewMew它应该是
PDO::FETCH_BOTH
,以匹配原始代码。旁注:在开发(仅)期间,最好使用
$PDO->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);在连接打开后立即执行。仅仅做一个
捕获(PDOException$e)
并不总是足够的。
$data = $query->fetchAll(PDO::FETCH_BOTH)