[英]What is the difference between PDO and MySQLi prepared statements?
这两个prepared
语句有什么区别?
$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');
$stmt->execute(array('name' => $name));
foreach ($stmt as $row) {
// do something with $row
}
$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
}
我检查了很多关于准备好的语句的课程,但我唯一理解的是第二种方式,因为它可以用程序编写,它和 PDO 不一样吗? 因为它们都是准备好的语句? 它们之间有速度差异或易用性吗? 我学习了第二种方式,因为我认为 PreparedStatment = PDO 但当我知道它不是 PDO 时我感到震惊,使用
mysqli_prepare
mysqli_stmt_bind_param
mysqli_stmt_execute
mysqli_stmt_bind_result
区别如下:-
Mysqli
仅用于 MySQL 数据库。 PDO
支持使用相同功能的其他数据库。
Mysqli
既可以用于面向对象的风格,也可以用于过程风格。 PDO
始终是面向对象的。
Mysqli
支持带有?
参数的占位符。 PDO
支持两者?
占位符和命名占位符,如:columnName
。
Mysqli
要求您使用函数将每个参数值绑定到准备好的语句。 PDO
还允许您在执行准备好的语句时简单地传递参数值数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.