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

时间:2016-01-07 04:09:50

标签: php mysql oop mysqli

我已经知道使用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 loopforeach loop一起使用,但无济于事。

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

是否推荐?,因为没有使用fetch_对象?谢谢

2 个答案:

答案 0 :(得分:2)

Official document about onDestroy

这样做并没有什么不妥,但在几乎所有代码中我都会看到/写入提取模式。

答案 1 :(得分:0)

'query'和类似'execute'是与PDO(PHP数据对象)相关的方法,它提供了与数据库交互的方法(不仅是MySQL,还有SQL Server,Oracle,SQLite等其他人)因此它是个好主意要学习如何使用这些方法(查询,执行以及许多方法,请查看我们的PDO文档)。

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