在托管网站中安装mysqlnd

kus*_*tus 5 php mysqli mysqlnd

我正在开发一个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对象已准备好并且bind_param已成功完成.
  • 对于手册页mysqli_stmtphp.net说,对使用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服务器上的网站吗?如果没有,我有什么办法可以阻止我更改整个网站的代码,这将花费我很多天?

问候

Joh*_*590 2

我以前也经历过这种情况,那是一次真正的吃时间。如果您不想升级到 VPS,唯一的解决方案是使用 PDO。您可以尝试在共享托管帐户中使用 SSH,但尝试更改任何内容都祝您好运,因为 Web 管理员在 Web 托管方面非常聪明。我什至将网络托管商删除yum.conf/etc/拒绝授予它权限,以至于您无法通过 yum 安装任何软件包。但是,如果您有 VPS 并且有 cpanel,则可以更改 PHP 的配置选项。我花了很长时间才弄清楚这一点,但我了解到您可以通过运行来更改 CPanel 中的 PHP 选项/usr/local/cpanel/scripts/easyapache。如果您运行 Apache 2.2,您还可以按照本文档更改 PHP 配置选项的配置选项。我很确定,如果没有 VPS,就无法像这样更改 CPanel。我希望这篇文章能有所帮助。