连接到托管服务器上的数据库时出错

Error while connecting to Database on hosted server

Warning: mysql_connect(): (HY000/2002): Connection refused in /home/vol14_1/byethost31.com/b31_16461744/htdocs/Mysql/con.php on line 7

Warning: mysql_select_db(): No such file or directory in /home/vol14_1/byethost31.com/b31_16461744/htdocs/Mysql/con.php on line 8

Warning: mysql_select_db(): A link to the server could not be established in /home/vol14_1/byethost31.com/b31_16461744/htdocs/Mysql/con.php on line 8

我有以下代码

<?php 
     $localhost="localhost"; 
     $username=b31_16461744; 
     $pass=test123; 
     $dbname=b31_16461744_user; 
     $a= mysqli_connect($localhost,$user,$pass); 
     mysql_select_db($dbname); 
     if($a)
     { 
       echo "connected..";
     } 
     else 
     { 
       echo "not...!!"; 
     }
?>

我认为凭据设置不正确。请参阅您的连接声明。 以供参考 : 在本地主机上工作时,我们将连接语句写为:

$con=mysql_connect("localhost","root","");
$db1=mysql_select_db("DatabaseName",$con);

但是,在服务器上工作时,我们需要更改以下凭据。 用户名和密码值是必须的。

    $con=mysql_connect("localhost","Username","password");
    $db1=mysql_select_db("DatabaseName",$con);

旁注: 假设凭据是正确的,由您的网络托管服务商提供给您。

这段代码有几个问题(取自您留下的评论)。

首先,您的三个声明未被引用,而是被视为常量。

PHP 错误报告会引发未定义常量的通知。

这些被视为常量:

 $username=b31_16461744; 
 $pass=test123; 
 $dbname=b31_16461744_user; 

您还为用户名 $user 引用了错误的变量,应该是 $username。错误报告会签署一个未定义的变量通知。

然后您将 mysql_mysqli_ 语法混合在一起。这些不同的 MySQL API 不会混用。您必须在整个代码中使用同一个。

旁注:您发布的另一个问题 您正在使用 sql306.byethost31.com 作为主持人。确保这是正确的。我不知道主机要您使用什么设置。

<?php 
     $localhost="localhost"; 
     $username="b31_16461744"; 
     $pass="test123"; 
     $dbname="b31_16461744_user"; 
     $a= mysqli_connect($localhost, $username, $pass); 
     mysqli_select_db($a, $dbname); 
     if($a)
     { 
       echo "connected..";
     } 
     else 
     { 
       echo "not...!!"; 
     }
?>

或者只使用所有四个参数:

<?php 
     $localhost="localhost"; 
     $username="b31_16461744"; 
     $pass="test123"; 
     $dbname="b31_16461744_user"; 
     $a= mysqli_connect($localhost, $username, $pass, $dbname); 

     if($a)
     { 
       echo "connected..";
     } 
     else 
     { 
       echo "not...!!" . mysqli_error($a); 
     }
?>

但是,您的 else 回声对您没有帮助。使用 mysqli_error() 得到真正的错误。

即:or die("Error " . mysqli_error($a));

手册中的示例

$link = mysqli_connect("myhost","myuser","mypassw","mydb")
        or die("Error " . mysqli_error($link)); 

参考文献:


error reporting 添加到您的文件的顶部,这将有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:显示错误只应在暂存阶段进行,绝不能在生产阶段进行