我已经设置了 PHP、MySQL 和 Apache。localhost()
对于 PHP,它运行良好。但是在我下载 MySQL 之后,它会报告:
致命错误:调用未定义函数 mysql_connect()
我怎样才能解决这个问题?
您已升级到 PHP 7,现在mysql_connect
已弃用。检查你的:
php -version
将其更改mysqli_connect
为:
$host = "127.0.0.1";
$username = "root";
$pass = "foobar";
$con = mysqli_connect($host, $username, $pass, "your_database");
如果您正在升级旧版 PHP,那么现在您将面临使用函数升级所有mysql_*
函数的任务mysqli_*
。
如果您在升级到 PHP 7.0 后收到此错误,那么您使用的是已弃用的库。
mysql_connect — 打开与 MySQL 服务器的连接
警告
此扩展在 PHP 5.5.0 中已弃用,并在 PHP 7.0.0 中被删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。
打开终端并运行以下命令。
sudo apt-get install mysql-server
如果您正在运行 PHP,您还需要为 mysql 5 安装 php 模块:
sudo apt-get install php5-mysql
验证您的 PHP 安装是否已使用 mysql 支持进行编译。创建一个包含测试网页<?php phpinfo(); exit(); ?>
并将其加载到浏览器中。在页面中搜索 MySQL。如果你没有看到它,你需要重新编译 PHP 并支持 MySQL,或者重新安装一个内置它的 PHP 包
PHP.INI
检查您是否忘记启用以下选项(加载 mysql 等模块):
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"
利用。
<?php $con = mysqli_connect('localhost', 'username', 'password', 'database'); ?>
在 PHP 7 中。您可能在 XAMPP 中有 PHP 7。您现在有两个选择:MySQLi 和 PDO。
对于CPanel用户,如果您看到此错误并且您已经为站点选择了 PHP 5.x,则可能存在禁用的CPanelmysql
更新和mysqli
PHP 扩展。
要检查并启用扩展:
mysql
检查mysqli
PHP 扩展此错误仅针对您的 PHP 版本 v7.0。您可以使用 PHP v5.0 来避免这些
用它
mysqli_connect("localhost","root","")
我只用 mysql 制作了 mysqli
一个解决方案可能是使用这样的适配器函数来开始使用mysqli
,而不是mysql
在整个应用程序中使用:
if (!function_exists('mysql_connect')) {
function mysql_connect($host = '', $user = '', $password = '', $database = '', $port = 0, $socket = '') {
return mysqli_connect($host, $user, $password, $database, $port, $socket);
}
}
if (!function_exists('mysql_select_db')) {
function mysql_select_db($link, $dbname) {
mysqli_select_db($link, $dbname);
}
}
我在 RHEL6 上遇到了同样的问题。原来 /etc/php.d 中的 mysql.ini 文件只有一个模块名,但需要一个完整的路径名。在我的 RHEL6 系统上,有效的条目是:
; Enable mysql extension module
extension=/usr/lib64/php/modules/mysql.so
修改文件后,我重新启动了 apache,一切正常。
我正在使用 Windows 8,通过更改环境变量解决了这个问题
请按照以下步骤操作:打开我的电脑属性->高级系统设置->环境变量。在“系统变量”下,选择“路径”并单击“编辑”在“变量值”中,添加“C:\php;” 或安装 php 的路径。
单击确定并应用设置并重新启动系统。它应该工作。
我的解决方案在这里(我只需要从 中删除最后一个斜杠(注意:反斜杠)PHPIniDir 'c:\PHP\'
):致命错误:调用未定义函数 mysql_connect() 无法解决
如果您使用的是 Windows10,PHP 7.2 并尝试连接到 mysql。如果发生此错误
未捕获的错误:调用未定义的函数 mysqli()
执行以下步骤以使其正确。
希望这对某人有所帮助。
这是一个快速修复:
所有的专业人士可能会因为这个答案而讨厌我。但是我在服务器上遇到了同样的错误:致命错误:未捕获错误:调用使用 PHP 7 的未定义函数 mysql_connect()。没有时间重写所有 mysql 代码,所以如果有人需要,可以快速临时修复它在 CPANEL 中查找PHP 配置并将该帐户的版本更改为 PHP 5.4 而不是 PHP 7。然后代码工作正常,没有上述错误。
检查是否为您的 PHP 版本安装了 mysqli 模块
$ ls /etc/php/7.0/mods-available/mysql*
/etc/php/7.0/mods-available/mysqli.ini /etc/php/7.0/mods-available/mysqlnd.ini
启用模块
$ sudo phpenmod mysqli
此代码可以帮助您
<?php
$servername = "localhost";
$username = "root";
$password = "";
$con = new mysqli($servername, $username, $password);
?>
但更改“服务器名”、“用户名”和“密码”
当您mysql_connect
在代码行中使用时会出现问题,因此只需将其添加为 in 即可mysqli_connect
解决问题。
然后,您还必须在mysqli
整个代码行中使用,否则问题会再次出现。
该示例mysql_select_db
将mysqli_select_db
用于选择数据库。