【问题标题】:recommended way of fetching results in database [OOP-PHP & MySQLi]在数据库中获取结果的推荐方法 [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_ 对象?。谢谢

【问题讨论】:

    标签: php mysql oop mysqli


    【解决方案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 提供了更好的可扩展性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-23
      • 2014-01-11
      • 2013-11-16
      • 1970-01-01
      • 2023-01-02
      • 1970-01-01
      • 2018-06-13
      相关资源
      最近更新 更多