PHP 5.5 找不到 MySQLi 构造函数

Posted

技术标签:

【中文标题】PHP 5.5 找不到 MySQLi 构造函数【英文标题】:PHP 5.5 not finding MySQLi constructor 【发布时间】:2014-04-23 03:02:48 【问题描述】:

我在 AWS EC2 实例上安装了 mysqlphp 5.5。但是,当我尝试

$db = new mysqli($args)

PHP 将我踢到自动加载器,好像它找不到 mysqli 对象的构造函数。我在 php.ini 文件中有未注释的 extension=mysql.so ,但这似乎没有完成任何事情。在启动时,我得到 ​​p>

PHP Startup: Unable to load dynamic library '/usr/lib64/php/5.5/modules/msql.so' - /usr/lib64/php/5.5/modules/msql.so: cannot open shared object file: No such file or directory in Unknown on line 0

我以为 mysqli/native 驱动程序是用 PHP5.5 预先打包的,但也许我错了。谁能给我一个关于 PHP5.5 如何与 mysqli 一起玩的提示?

【问题讨论】:

但需要的扩展名应该是mysqli 我都试过了。 Mysql.so 是默认注释的,所以一旦 Mysqli.so 不起作用,我就使用它。 我需要同时更改 php.ini 和 php-5.5.ini 吗? 是的,同样的错误。 PHP启动:无法加载动态库'/usr/lib64/php/5.5/modules/msqli.so' - /usr/lib64/php/5.5/modules/msqli.so:无法打开共享对象文件:没有这样的文件或第 0 行 Unknown 中的目录 【参考方案1】:

对于 Amazon Linux,它没有预先打包。它是一个插件模块(假设您使用的是 Amazon Linux)。你可以运行:

sudo yum install php55-mysqlnd

【讨论】:

另外,别忘了sudo service httpd restart。不知道我必须这样做,这让我搞砸了一段时间。【参考方案2】:

可能拼错了? PHP 正在尝试加载 msqli.so,而不是 mysqli.so。检查你写的是“extension=mysqli.so”,而不是“extension=msqli.so”

【讨论】:

以上是关于PHP 5.5 找不到 MySQLi 构造函数的主要内容,如果未能解决你的问题,请参考以下文章

当参数是构造函数的参数声明类型的子类时,反射找不到构造函数

无法运行 FitNesse 示例(找不到类/构造函数)

在 php 中调用类方法(带构造函数)而不实例化对象

继承基类时如何避免错误“找不到类型'MyType'的构造函数”

MySql.EntityFramework 找不到合适的构造函数

试图重载和运算符“+”但找不到正确的类构造函数