[英]MySQL: Connect to a remote Database error
我有一个简单的HTML表单,该表单试图连接到远程服务器上托管的数据库。 该表单尝试使用以下脚本连接到数据库:(根据davejal建议进行编辑)
<?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='';
echo "<p>Test</p>" ;
define('DB_HOST', 'mysql.utk.edu:3306');
define('DB_NAME', 'emoschan_test');
define('DB_USER','emoschan');
define('DB_PASSWORD','NewPass');
echo " Does mysql exist?". var_dump(function_exists('mysql_connect'));
echo " Does mysqli exist?". var_dump(function_exists('mysqli_connect'));
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die("Failed to connect to MySQL: " . mysql_error());
if (mysql_connect_error($con)) { echo "Third Failed to connect to MySQL:" . mysql_connect_error(); }
else { echo "<p>Successfully connected to your database</p>"; }
?>
连接失败,我收到跟随错误(我包括错误的屏幕截图):
无法连接到MySQL:客户端不支持服务器请求的身份验证协议。 考虑升级MySQL客户端
如您所见,mysqli不存在。
我试图将密码更改为旧加密,仍然收到错误(phpmyadmin屏幕截图): 更改为OLD password
第二次编辑。 phpinfo()显示PHP版本5.3.0和“客户端API版本:4.0.31”
不建议使用mysql_connect函数。
在您声明$con
更改为mysqli的行上
$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());
您可以删除选择数据库的行,因为在创建连接时已经选择了它,方法是将其作为第四个变量传递。
不要忘记将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='';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.