将mysql_fetch_array转换为PDO :: FETCH_NUM

时间:2014-05-10 00:23:32

标签: 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(PDO::FETCH_ASSOC);

2 个答案:

答案 0 :(得分:14)

以下是对应关系:

  • 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)取决于您是否为className指定了可选的mysql_fetch_object参数。行是对象,可以是指定的类,也可以是stdClass

while循环相当于:

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

答案 1 :(得分:0)

您应该能够在数组中获取查询数据:

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

如果这不起作用,您的PDO连接可能设置不正确或您的查询无法运行。您可以尝试使用以下内容对查询进行疑难解答:

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