我正在用 PHP - MySQL 开发一个网站。这里有几点需要注意:
- 我正在使用MySQLi API 进行数据库访问。
- 在我本地安装的 XAMPP(Windows 7 机器)中,PHP 版本是5.3.8,MySQL 版本是mysqlnd 5.0.8-dev - 20102224
- 我在免费托管服务器上托管了该网站,用于测试“cuccfree.com”。这里 PHP 版本是5.3.14, MySQL 版本是5.1.66。与许多其他托管公司相比,它仍然对 MySQLi 有更好的支持。
- 在 phpinfo'ing 两者中,本地机器显示已安装mysqlnd驱动程序,但托管服务器尚未安装。
- 我为 MySQLi 创建了一个包装类,它使用函数mysqli_stmt::get_result()获取 ResultSet 。这个函数在我的本地机器上有效,但在 cuccfree.com 托管服务器上无效,因为mysqli对象没有名为get_result()的方法。不过,mysqli_stmt对象已准备好并已成功绑定参数。
- php.net上mysqli_stmt的手册页说,要使用mysqli_stmt::get_result(),我们需要安装mysqlnd驱动程序。
服务器的配置提供了mysqli_stmt::bind_object()的使用。但
get_result()
对我来说似乎是一个更好的选择,因为我们可以得到数组形式的结果。我已经使用以下行重写了函数以接受可变数量的参数:call_user_func_array(array($stmt, 'bind_param'), $params);
其中 $params 是一个参数数组。
- 使用 bind_object(),我必须将返回的每一列绑定到一个变量。在这种情况下,我无法创建一个包装类函数来一次性处理所有 SQL 查询。
我找了几家托管公司,与许多公司的客户支持交谈并邮寄,包括 GoDaddy 和 Manas Hosting,他们不提供mysqlnd的使用。他们非常合乎逻辑地坚持使用 VPS 或专用服务器。显然,这两种建议的选择都非常昂贵,即使在入门级也是如此。
那么,最后我的问题是,我们可以将 mysqlnd 安装/嵌入到 Linux 服务器上的网站中吗?如果没有,我有什么替代方法可以阻止我更改整个网站的代码,这将花费我很多天?
问候