致命错误:调用未定义函数mysql_connect()

我已经build立了PHP,MySQL和Apache。 localhost()为PHP,它运作良好。 但是在我下载MySQL之后,它会报告:

致命错误:调用未定义函数mysql_connect()

我该如何解决这个问题?

打开你的terminal并运行下面的命令。

 sudo apt-get install mysql-server 

如果你正在运行PHP,你还需要安装MySQL模块5:

 sudo apt-get install php5-mysql 

使用“mysqli_connect”

 $con = mysqli_connect("127.0.0.1","root","pass","your_database"); 

它会工作,我解决了我的问题。

如果升级到PHP 7.0后出现此错误,那么您使用的是不推荐使用的库。

mysql_connect – 打开一个到MySQL服务器的连接
警告
这个扩展在PHP 5.5.0中被弃用,并且在PHP 7.0.0中被删除。 应该使用MySQLi或PDO_MySQL扩展。

更多这里: http : //php.net/manual/en/function.mysql-connect.php

validation您的PHP安装是否已经使用mysql支持编译。 创build一个包含<?php phpinfo(); exit(); ?>的testing网页<?php phpinfo(); exit(); ?> <?php phpinfo(); exit(); ?> <?php phpinfo(); exit(); ?>并将其加载到浏览器中。 searchMySQL的页面。 如果你没有看到它,你需要重新编译支持MySQL的PHP​​,或者重新安装内置的PHP包

 PHP.INI 

检查你是否忘记启用下面的选项(加载其他模块):

 ; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir ; extension_dir = "./" ; On windows: extension_dir = "ext" 

我在RHEL6上遇到了同样的问题。 事实certificate,/etc/php.d中的mysql.ini文件只有一个模块名,但需要一个完整的path名。 在我的RHEL6系统上,工作条目是:

 ; Enable mysql extension module extension=/usr/lib64/php/modules/mysql.so 

修改文件后,我重新启动Apache,一切工作。

我正在使用Windows 8通过更改环境variables解决了这个问题

请按照下列步骤操作:打开我的计算机属性 – >高级系统设置 – >环境variables。 在'系统variables'下,select'path'并点击'edit'在'variable value'中,添加'C:\ php;' 或PHP安装的path。

单击确定并应用设置并重新启动系统。 它应该工作。

我的解决scheme是在这里(我只需要从PHPIniDir 'c:\PHP\' )删除最后一个斜杠(NB:反斜杠): 致命错误:调用未定义的函数mysql_connect()不能解决

检查你的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()使用PHP 7.没有时间重写所有的mysql代码,所以如果任何人需要它快速,临时修复在CPANEL中寻找PHPconfiguration ,并将该帐户的版本更改为PHP 5.4而不是PHP 7。然后代码工作正常,没有上述错误。

解决scheme可能是使用像这样的适配器函数来开始在整个应用程序中使用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); } } 

当你在你的代码行中使用mysql_connect时候,问题就出现了,所以把它添加到mysqli_cOnnect就可以解决问题了。
你也必须在整个代码行中使用mysqli ,否则问题将再次出现。
例如mysql_select_db将会是mysqL_select_db
这是select数据库。

谢谢,希望这有助于