在数据库中获取结果的推荐方法 [OOP-PHP & MySQLi]
Posted
技术标签:
【中文标题】在数据库中获取结果的推荐方法 [OOP-PHP & MySQLi]【英文标题】:recommended way of fetching results in database [OOP-PHP & MySQLi] 【发布时间】:2016-04-11 08:59:49 【问题描述】:我已经知道fetch_array
、fetch_assoc
、fetch_row
、fetch_object
和 fetch_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]的主要内容,如果未能解决你的问题,请参考以下文章