PDO fetchAll()和fetch_all()有什么区别?

时间:2016-04-03 08:24:36

标签: php mysqli pdo

我尝试使用预准备语句从数据库中获取数据。我是PDO的新手,所以我搜索了一下。下面是两个不同的模式,给我相同的结果。

模式1

$pdo=new PDO("mysql:dbname=dummy_db;host=localhost","root","");
$statement=$pdo->prepare("SELECT * FROM mytable");
$statement->execute();
$results=$statement->fetchAll(PDO::FETCH_ASSOC);
print_r($results);

模式2

$stmt = $conn->prepare("select * from mytable");
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_all(PDO::FETCH_ASSOC);
print_r($row);

在这两种模式之上给出了几乎相同的结果,所以我想知道哪一个对于获取数据是好的,它们之间有什么区别。如果有人指导我,我很感激。

1 个答案:

答案 0 :(得分:1)

这是一个有趣的问题。

虽然您可能没有意识到第二个代码片段与PDO无关且属于mysqli,但这个问题仍然有道理。

因为PDO&#39; fetchAll()比mysqli中的简单fetch_all()更有用,感谢PDO::FETCH常量,让您在dozens different formats中获取数据。< / p>

这是推荐使用PDO而不是mysqli的原因之一。