【发布时间】:2012-05-31 22:36:04
【问题描述】:
我刚刚使用 mysqli 将我的所有 sql 查询更改为准备好的语句。为了加快这个过程,我创建了一个函数(称为performQuery)来替换mysql_query。它接受查询、绑定(如“sdss”)和要传入的变量,然后执行所有 perpared 语句的内容。这意味着更改我所有的旧代码很容易。我的函数使用 mysqli get_result() 返回一个 mysqli_result 对象。
这意味着我可以从以下位置更改我的旧代码:
$query = "SELECT x FROM y WHERE z = $var";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)){
echo $row['x'];
}
到
$query = "SELECT x FROM y WHERE z = ?";
$result = performQuery($query,"s",$var);
while ($row = mysql_fetch_assoc($result)){
echo $row['x'];
}
这在 localhost 上运行良好,但我的虚拟主机服务器没有可用的 mysqlnd,因此 get_result() 不起作用。安装 mysqlnd 不是一种选择。
从这里出发的最佳方式是什么?我可以创建一个替换get_result() 的函数吗?如何创建?
【问题讨论】: