首页 > 数据库 > mysql教程 > `bind_result()` 与 `get_result()`:您应该选择哪种 PHP MySQL 结果绑定策略?

`bind_result()` 与 `get_result()`:您应该选择哪种 PHP MySQL 结果绑定策略?

Mary-Kate Olsen
发布: 2025-01-01 09:18:10
原创
857 人浏览过

`bind_result()` vs. `get_result()`: Which PHP MySQL Result Binding Strategy Should You Choose?

Bind_result 与 Get_result:比较结果绑定策略

在 PHP 中,有两种不同的方法从 MySQL 数据库检索查询结果:bind_result() 和 get_result() 。了解这些方法之间的差异可以优化您的代码性能和结果处理。

Bind_result()

bind_result() 显式列出要在查询中绑定的列,从而为每个列生成单独的变量列。

使用示例bind_result():

<?php
$query = 'SELECT id, first_name, last_name FROM `table` WHERE id = ?';
$id = 5;

$stmt = $mysqli->prepare($query);
$stmt->bind_param('i',$id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id, $first_name, $last_name);

while ($stmt->fetch()) {
    //...
}
?>
登录后复制

优点:

  • 与较旧的 PHP 版本兼容
  • 为每个版本返回单独的变量列

缺点

  • 手动列出所需的所有变量
  • 表结构更改时需要更新代码
  • 需要单独的数组处理

Get_result()

get_result() 自动返回表示检索到的行的关联或枚举数组或对象。

示例使用get_result():

<?php
$query = 'SELECT * FROM `table` WHERE id = ?';
$id = 5;

$stmt = $mysqli->prepare($query);
$stmt->bind_param('i',$id);
$stmt->execute();
$result = $stmt->get_result();

while ($row = $result->fetch_assoc()) {
    //...
}
?>
登录后复制

优点:

  • 返回关联数组或枚举数组/对象
  • 支持获取所有结果与fetch_all()
  • 简化结果处理

缺点

  • 需要 MySQL 本机驱动程序 (mysqlnd)

差异和局限性

Feature bind_result() get_result()
Result Handling Separate variables Associative/enumerated array or object
MySQL Driver Older versions supported Requires mysqlnd
Code Maintenance Manual updates required Automatic result filling
Result Fetching Individual rows All rows at once

结论

bind_result() 和 get_result() 都有其优点和局限性。对于较旧的 PHP 版本或首选单独的变量时,bind_result() 可能比较合适。但是,当结果处理简单性和一次获取多行的能力很重要时,建议选择 get_result()。

以上是`bind_result()` 与 `get_result()`:您应该选择哪种 PHP MySQL 结果绑定策略?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板