我正试图使用prepared语句从数据库中获取数据。我是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);
以上两种模式给了我几乎相同的结果,所以我想知道哪种模式适合获取数据,它们之间有什么区别。如果有人指导我,我将不胜感激。
这是一个有趣的问题。
尽管您可能没有意识到第二个代码片段与PDO无关,属于mysqli,但这个问题仍然有一定的意义。
因为PDO的fetchAll()
比mysqli中的简单fetch_all()
有用得多,这要归功于PDO::FETCH
常量,它可以让你以几十种不同的格式获取数据。
这就是为什么PDO比mysqli更受推荐的原因之一。