这两种说法有什么区别prepared?
$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');
$stmt->execute(array('name' => $name));
foreach ($stmt as $row) {
// do something with $row
}
Run Code Online (Sandbox Code Playgroud)
$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?');
$stmt->bind_param('s', $name);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// do something with $row
}
Run Code Online (Sandbox Code Playgroud)
我查了很多关于准备好的陈述的课程,但我唯一理解的是第二种方式,因为它可以用程序编写,这不是和PDO一样吗?因为它们都是准备好的语句?它们之间有速度差异或易用性吗?我学习了第二种方法,因为我认为PreparedStatment = PDO,但是当我知道它不是PDO时,我很震惊,使用
mysqli_prepare
mysqli_stmt_bind_param
mysqli_stmt_execute
mysqli_stmt_bind_result
Run Code Online (Sandbox Code Playgroud)
区别如下:-
Mysqli仅适用于 MySQL 数据库。PDO支持使用相同功能的其他数据库。
Mysqli可以以面向对象的风格或过程的风格使用。PDO始终是面向对象的。
Mysqli支持带有?参数占位符的准备好的语句。PDO支持?占位符和命名占位符,例如:columnName.
对于较旧的 PHP 版本,Mysqli仅允许显式绑定。如今,PDO和 都Mysqli允许在执行准备好的语句时简单地传递参数值数组。此外,从8.2开始,Mysqli有一个方便的功能,可以一次性运行准备和执行。