PHP 的 MySQLi 特性很棒。
准备好的语句非常适合在查询中注入参数。
但是,如果您使用 Statements,您似乎无法再访问 fetch_assoc 功能。您必须手动绑定所有结果。这意味着我的 SQL 查询必须列出所有字段,然后我必须在获取结果时提前列出所有变量(使用 bind_result)。这会变得非常烦人和浪费时间。
有替代方案吗?
谢谢
是的,它被称为PDO,通常比 MySQLi 更受欢迎。它提供带有常规获取选项的语句,并且不会强制您显式绑定所有参数。一个典型的查询可能如下所示:
$stmt = $db->prepare("SELECT * FROM foo WHERE a = ?");
$stmt->execute(array($a));
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
PDO 非常灵活,因此也可以以其他方式使用。手册中有很多很好的例子。看一看!
MySQLi 确实提供了处理这个的方法,看看 result_metadata 函数。
我编写了一个类来允许无忧的参数化 MySQLi 查询 - 下载和基本使用信息可在此处获得:http ://www.robpoyntz.com/blog/?p=191