# eselect php list apache2
[1] php5.3 *
[2] php5.5
# eselect php set apache2 2
You have to run `/etc/init.d/apache2 restart' for the changes to take effect
# /etc/init.d/apache2 restart
0
<?php /* If the error is due to calling mysqli in a class */
class dbconnect extends mysqli{
private $host = 'localhost';
private $user = 'root';
private $pass = '';
private $db = 'test';
public function __construct() {
parent::__construct($this->host, $this->user, $this->pass, $this->db);
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') ' .
mysqli_connect_error());
}
}
}
?>
17 回答
好像你的安装有问题 .
你安装了MySQLi吗?
你有没有在php.ini中激活它?
http://www.php.net/manual/en/mysqli.installation.php
您可以使用a handwritten MYSQLi class,因此如果您不拥有服务器,则不要使用't need to install mysqli. It' .
除了取消注释php.ini中的php_mysqli.dll扩展,还要取消注释php.ini中的extension_dir指令并指定你的位置:
这使它对我有用 .
我的OS是Ubuntu . 我使用以下方法解决了这个问题
听起来你只需要install MySQLi .
如果您认为自己已经这样做并且仍有问题,请发布您的操作系统以及其他可能有用的内容 .
您可以通过执行以下代码来检查mysqli库是否存在:
如果您在Ubuntu,请运行:
如果您在命名空间的类中调用"new mysqli(..)",则可能会看到类似的错误
Fatal error: Class 'foo\bar\mysqli' not found in
. 修复此问题的方法是使用前面的反斜杠将其显式设置为根命名空间,如下所示:我想我可以使用Namesco服务器帮助任何有同样问题的人 . 将数据库从家用PC上的本地服务器移动到namesco后,我一直在尝试解决此问题 . 他们不会协助他们说这是一个编码问题 .
但是,从CPANEl LINUX主机界面修复它很简单 .
点击php .
然后点击php模块,从他们预装的模块列表中单击mysqli的框 .
然后单击“保存” . (如果代码在另一台服务器上运行,则无需更改代码 . )
不幸的是,他们的支持文章是浪费时间 . 读完这篇文章后,我带着一个新的决心去了管理界面 .
谢谢大家 .
如何在php.ini中启用mysqli
编辑/取消注释删除';'(冒号)php.ini中的以下配置: 1st (取消注释并添加配置):include_path = "C:\php\includes" 2nd (取消注释):extension_dir = "ext" 3rd (取消注释并编辑配置):extension = C:/ PHP / ext / php_mysql.dll扩展名= C:/PHP/ext/php_mysqli.dll
重新启动IIS服务器
确保系统上正在运行mysql .
如何加载php.ini文件
将文件php.ini-production / php.ini-development中的任何一个从C:\ PHP重命名为php.ini(注意现在扩展名为ini,即"php.ini") .
重命名为php.ini文件后重启服务器
查看http://localhost/phpinfo.php中的更改
某些发行版(例如Gentoo)支持多个PHP安装,您必须确保使用安装并启用了mysqli的发行版 .
在Gentoo上,我安装了一个新的PHP(启用了mysqli USE标志),但我需要激活新版本的PHP(因为旧版本必须缺少mysqli):
这为我解决了最初的“未找到”错误 . 注意反斜杠,就像现在的梦想一样 . 只有在使用命名空间时才需要,但现在却没有?
$ mysqli = new \ MySQLi($ db_server,$ db_user,$ db_pass,$ db_name)或die(mysqli_error());
我检查了上面的所有内容,它对我不起作用,
我找到了一些步骤 .
我在 Ubuntu 14.04 上使用 PHP Version 5.5.9-1ubuntu4.17
首先检查文件夹
如果它不包含 mysqli.ini ,请阅读安装它的其他答案,
打开
php.ini
找到 extension_dir在我的情况下,我必须设置
extension_dir = /usr/lib/php5/20121212
并重启apache2:
/ect/init.d/apache2 restart
PHP zip包含\ ext目录下的大多数常用扩展(Windows上的* .dll,如php_mysqli.dll),但默认情况下不启用它们 . 尝试使用MySQLi时,您可能会收到此致命错误:
要启用扩展,请打开php.ini(您可能需要先将php.ini-development复制为php.ini),然后取消注释(或添加)这两行:
你正在获得致命错误的任何特定扩展,即对于mysqli:
在ubuntu上:
经过长时间的分析,我找到了解决这个问题的方法 . 在使用命令行功能正确测试我的php安装后,我发现php运行良好,可以使用mysql数据库 . 顺便说一句 . 你可以使用php -f filename.php命令运行带有php代码的代码文件
所以我意识到,Apache必定存在问题 .
我只用了phpinfo()函数制作了一个文件 .
在这里,我看到,在线
Loaded Configuration File
我的配置文件没有加载,而是提到(无) .
最后我在Apache配置中找到了条目
<IfModule php5_module>
PHPINIDir "C:/xampp/php"
</IfModule>
但我已经安装了PHP 7,因此Apache无法加载php.ini文件,因为没有条目 . 我补充道
重新启动后,Apache一切正常 .
我在httpd-xampp.conf文件中找到了上面的代码块 . 可能它在你配置的其他地方 .
我在php 7的设置之前更改了同一个文件,作为php 5版本的替代品 .
正如您所看到的,我已经安装了xampp软件包,但这个问题只是在Apache端 .
所以我希望它可以帮助别人解决这个问题 .