繁体   English   中英

PDO 和 MySQLi 准备语句有什么区别?

[英]What is the difference between PDO and MySQLi prepared statements?

这两个prepared语句有什么区别?

1

$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');

$stmt->execute(array('name' => $name));

foreach ($stmt as $row) {
    // do something with $row
}

2

$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

区别如下:-

  1. Mysqli仅用于 MySQL 数据库。 PDO支持使用相同功能的其他数据库。

  2. Mysqli既可以用于面向对象的风格,也可以用于过程风格。 PDO始终是面向对象的。

  3. Mysqli支持带有? 参数的占位符。 PDO支持两者? 占位符和命名占位符,如:columnName

  4. Mysqli要求您使用函数将每个参数值绑定到准备好的语句。 PDO还允许您在执行准备好的语句时简单地传递参数值数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM