PHP Mysqli fetch_assoc

时间:2009-07-02 21:19:03

标签: php mysql mysqli

PHP的MySQLi功能很棒。

准备好的语句非常适合在查询中注入参数。

但是,如果您使用语句,则您似乎无法再访问fetch_assoc功能。您必须手动绑定所有结果。这意味着我的SQL查询必须列出所有字段,然后我必须在获得结果时预先列出所有变量(使用bind_result)。这可能会变得非常烦人并浪费时间。

有替代方案吗?

由于

2 个答案:

答案 0 :(得分:4)

是的,它被称为PDO,通常比MySQLi更受欢迎。它提供带有常规提取选项的语句,并不强制您显式绑定所有参数。典型的查询可能如下所示:

$stmt = $db->prepare("SELECT * FROM foo WHERE a = ?");
$stmt->execute(array($a));

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

PDO非常灵活,因此也可以以其他方式使用。手册中有很多很好的例子。看看吧!

答案 1 :(得分:1)

MySQLi确实提供了处理此问题的方法,看看result_metadata函数。

我写了一个类来允许无障碍参数化MySQLi查询 - 下载和基本用法信息可在此处获取:http://www.robpoyntz.com/blog/?p=191