Php 在托管网站中安装mysqlnd

Php 在托管网站中安装mysqlnd,php,mysqli,mysqlnd,Php,Mysqli,Mysqlnd,我正在用PHP-MySQL开发一个网站。以下是需要注意的几点: 我正在使用MySQLiAPI访问数据库 在我本地安装的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上,本地计算机显

我正在用PHP-MySQL开发一个网站。以下是需要注意的几点:

  • 我正在使用MySQLiAPI访问数据库
  • 在我本地安装的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\u stmt::get\u result()获取结果集。此函数在我的本地计算机上工作,但在cuccfree.com托管服务器上不工作,因为mysqli对象没有名为get\u result()的方法。尽管如此,mysqli stmt对象已准备好,并且绑定参数成功
  • 上的mysqli\u stmt手册页上说,要使用mysqli\u stmt::get\u result(),我们需要安装mysqlnd驱动程序
  • 服务器的配置提供了mysqli\u stmt::bind\u object()的使用。但是对于我来说,
    get_result()
    似乎是一个更好的选择,因为我们可以以数组的形式得到结果。我已使用以下行重写函数以接受可变数量的参数:

    调用_user_func_数组(数组($stmt,'bind_param'),$params)

其中,$params是一个参数数组

  • 使用bind_object(),我必须将返回的每一列绑定到一个变量。在这种情况下,我无法创建一个包装类函数来在一个点上处理所有SQL查询
我找了几家托管公司,与包括GoDaddy和Manas hosting在内的许多公司的客户支持部门进行了交谈和邮件发送,他们不提供使用mysqlnd的功能。从逻辑上讲,他们坚持使用VPS或专用服务器。显然,这两种建议方案都非常昂贵,即使是在入门级

那么,最后我的问题是,我们可以将mysqlnd安装/嵌入到Linux服务器上的网站中吗?如果没有,我有什么选择来阻止我改变整个网站的代码,这将花费我很多天


关于

除非您的托管公司启用了
dl()
,我几乎可以保证他们没有启用,否则没有

您已经指出的第二个选择是为mysqlnd编写(或者找到,它们可能存在,也许其他人可以向您指出)一个兼容层。我假设自从你写了你自己的之后,还没有一个已经存在。不幸的是,我相信你陷入了困境


无论如何,下次你真的应该使用PDO:)但我知道,事后诸葛亮是20/20,所以…

我以前也经历过这种情况,它是一个真正的食客。如果不想升级到VPS,唯一的解决方案是使用PDO。您可以尝试在共享主机帐户中使用SSH,但希望您在尝试更改任何内容时好运,因为web管理员在web主机方面很聪明。我甚至将
yum.conf
/etc/
中删除,并拒绝允许您通过yum安装任何软件包。但是,如果您有一个VPS,并且您有一个cpanel,那么您可以更改PHP的配置选项。我花了很长时间才弄明白这一点,但我了解到,您可以通过运行
/usr/local/CPanel/scripts/easyapache
来更改CPanel中的PHP选项。如果运行Apache2.2,还可以按照以下文档更改PHP配置选项的配置选项。没有副总裁,我敢肯定,没有办法改变CPanel。我希望这篇文章能有所帮助。

dl()
行不通。你必须先卸载基于libmysql的mysqli,然后卸载
dl()
mysqlnd和基于mysqlnd的mysqli。@nezZario:我学到了一个教训——“使用PDO”。下一次,没关系。这次我得自己做点什么。无法理解,如果在托管服务器上无法使用XAMPP,为什么mysqlnd会提供XAMPP。@kush.popularity共享托管公司不得不做出很多妥协,通常会选择较旧的稳定版本的工具/库,因为目标受众。大多数使用(便宜的)共享主机的人都在运行旧版本的webapps和框架,这并不总是适用于新的PHP版本和库。他们选择稳定性和可预测性,而不是性能或尖端技术。XAMPP不是专门为共享主机而设计的,也没有这个限制。再次感谢。自从将您的回复标记为应答后,我开始将所有数据库访问代码转换为PDO。从那以后,我再也没有在任何服务器上遇到过问题。