在数据库中获取结果的推荐方法 [OOP-PHP & MySQLi]

Posted

技术标签:

【中文标题】在数据库中获取结果的推荐方法 [OOP-PHP & MySQLi]【英文标题】:recommended way of fetching results in database [OOP-PHP & MySQLi] 【发布时间】:2016-04-11 08:59:49 【问题描述】:

我已经知道fetch_arrayfetch_assocfetch_rowfetch_objectfetch_all(mysqlI_NUM or MYSQLI_ASSOC or MYSQLI_BOTH) 的用途和方法。

但我刚刚发现并试验了以下代码对我有用,不使用任何 fetch_* 对象

$sqli = $db->query("SELECT * FROM `tblSample`;");

foreach($sqli as $out) 
    echo "val1 => ", $out['0'], "<br />val2 => ", $out['1'], "<br />val3 => ", $out['2'];

如您所见,我没有使用任何 fetch_ 对象左右,出于某种原因,通过使用 foreach loop,我仍然能够获取查询

我尝试使用while loop 这样做,就像使用foreach loop 一样,但无济于事。

所以我只是想问一下,因为我知道那里的其他一些专业开发人员可能已经遇到过这种情况。

这是推荐的吗?因为没有使用 fetch_ 对象?。谢谢

【问题讨论】:

【参考方案1】:

http://php.net/manual/en/pdo.query.php

这样做并没有什么错,但在我见过/编写的几乎所有代码中都指定了获取模式。

【讨论】:

我也是。就个人而言,我在检索查询结果时经常使用 fetch_ 对象。但如果这种语法在技术上没有任何问题。然后在某些代码中,这样做可能很有用。无论如何,谢谢伙计【参考方案2】:

“查询”和类似的“执行”是与 PDO(PHP 数据对象)相关的方法,它提供与数据库交互的方法(不仅是 MySQL,还包括 SQL Server、Oracle、SQLite 等其他数据库),因此这是个好主意要了解如何使用这些方法(查询、执行等等,请查看我们的 PDO 的 PHP 文档)。

关于 PDO 的好处是,如果您想使用不同的数据库进行另一个项目,那么与它的交互对您来说几乎是一样的,不仅是如果您将现有项目迁移到另一个数据库,您只需要修改 PDO 对象中的连接字符串并且您的代码将是相同的(不是很好吗?) 总之,如果您知道您只与 MYSQL 交互,那么使用 MYSQL 对象(MYSQLI_NUM 或 MYSQLI_ASSOC 或 MYSQLI_BOTH)没有任何问题数据库,但使用 PDO 提供了更好的可扩展性。

【讨论】:

以上是关于在数据库中获取结果的推荐方法 [OOP-PHP & MySQLi]的主要内容,如果未能解决你的问题,请参考以下文章

如何从搜索结果中获取所有值

在 Java 中获取主机名的推荐方法

Java 通过 Calendar 获取独立的 年月日时分秒 代码封装

是否有推荐的方法来获取 web 应用程序的实时数据?

React Redux表单提交未给出正确的结果

蓝牙ble数据转语音实现Android AudioRecord方法推荐