Php MySQL:连接到远程数据库错误

Php MySQL:连接到远程数据库错误,php,mysql,database,mysqli,Php,Mysql,Database,Mysqli,我有一个简单的HTML表单,它试图连接到远程服务器上托管的数据库。表单尝试使用以下脚本连接到数据库: (根据达维加尔的建议编辑) 连接失败,我收到以下错误(包括错误的屏幕截图): 连接MySQL失败:客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端< /P> 正如您所见,mysqli并不存在 我尝试将密码更改为旧的加密,但仍然出现错误(phpmyadmin屏幕截图): 第二次编辑。phpinfo()显示PHP版本5.3.0和“客户端API版本:4.0.31”函数mysql\

我有一个简单的HTML表单,它试图连接到远程服务器上托管的数据库。表单尝试使用以下脚本连接到数据库: (根据达维加尔的建议编辑)


连接失败,我收到以下错误(包括错误的屏幕截图):

连接MySQL失败:客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端< /P>

正如您所见,mysqli并不存在

我尝试将密码更改为旧的加密,但仍然出现错误(phpmyadmin屏幕截图):


第二次编辑。phpinfo()显示PHP版本5.3.0和“客户端API版本:4.0.31”

函数mysql\u connect已弃用。

函数mysql\u connect已弃用。

在您声明的行上
$con
更改为mysqli so

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die("Failed to connect to MySQL: " . mysql_error());
变成:

$con=mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die("Failed to connect to MySQL: " . mysql_error());
您可以删除选择db的行,因为您在创建连接时已将其作为第四个变量传递,从而将其选中

不要忘记将if零件也更改为:

if (mysqli_connect_error($con)) { echo "Third Failed to connect to MySQLi:" . mysqli_connect_error();  }
要显示所有错误,请在打开
php

 ini_set('display_errors', 1); 
 ini_set('log_errors', 1); 
 ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); 
 error_reporting(E_ALL);
 $error='';

在您声明的行中,
$con
更改为mysqli so

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die("Failed to connect to MySQL: " . mysql_error());
变成:

$con=mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die("Failed to connect to MySQL: " . mysql_error());
您可以删除选择db的行,因为您在创建连接时已将其作为第四个变量传递,从而将其选中

不要忘记将if零件也更改为:

if (mysqli_connect_error($con)) { echo "Third Failed to connect to MySQLi:" . mysqli_connect_error();  }
要显示所有错误,请在打开
php

 ini_set('display_errors', 1); 
 ini_set('log_errors', 1); 
 ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); 
 error_reporting(E_ALL);
 $error='';

你认为或者你知道吗?我尝试了完全相同的代码来连接localhost(我的计算机中的数据库),效果很好。PHP版本5和更高版本中包含了mysqli扩展,不推荐使用mysql_connect。可能您的服务器上运行的是较低版本的php。@Pedro底部有一条关于您认为或您知道的版本的评论?我尝试了完全相同的代码连接到localhost(我计算机中的数据库),效果很好。php版本5及更高版本中包含mysqli扩展,mysql_connect不推荐使用。可能您正在服务器上运行较低版本的php。@Pedro底部有一条关于版本的评论,我已包含此检查:echo“mysqli是否存在?”。var_dump(函数_存在('mysqli_connect'));它返回false。mysqli不包括在内。我认为您需要添加mysqli,因为mysql不受欢迎检查在我编辑的答案的最后部分引发了哪些错误,并查看导致错误的原因。我得到以下警告:警告:mysql\u connect()[function.mysql connect]:客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端在/home /*******/PultAuthHTML/CalutoVix-Engop-Up.PHP。var_dump(函数_存在('mysqli_connect'));它返回false。mysqli不包括在内。我认为您需要添加mysqli,因为mysql不受欢迎检查在我编辑的答案的最后部分引发了哪些错误,并查看导致错误的原因。我得到以下警告:警告:mysql\u connect()[function.mysql connect]:客户端不支持服务器请求的身份验证协议;如果您运行<代码> PHPin(),请考虑在MySQL客户端/home /*********/PultClivy-Sig-Up.PHP上升级MySQL客户端;code>然后您将看到很多关于PHP、版本等的信息,以及加载了哪些驱动程序等。@Ryan phpInfo()显示:PHP版本是5.3.0,“MYSQL客户端API版本:4.0.31”尝试省略主机路径上的端口:define('DB_host','MYSQL.utk.edu');我最近遇到了一个类似的问题,如果运行
phpInfo()
然后您将看到很多关于PHP、版本等的信息,以及加载了哪些驱动程序等。@Ryan phpInfo()显示:PHP版本是5.3.0,“MYSQL客户端API版本:4.0.31”尝试省略主机路径上的端口:define('DB_host','MYSQL.utk.edu');我最近遇到了一个类似的问题,通过这种方式解决了