PHP 5.5 找不到 MySQLi 构造函数
Posted
技术标签:
【中文标题】PHP 5.5 找不到 MySQLi 构造函数【英文标题】:PHP 5.5 not finding MySQLi constructor 【发布时间】:2014-04-23 03:02:48 【问题描述】:我在 AWS EC2 实例上安装了 mysql 和 php 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 构造函数的主要内容,如果未能解决你的问题,请参考以下文章
继承基类时如何避免错误“找不到类型'MyType'的构造函数”