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);
答案 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();
}