连接到托管服务器上的数据库时出错
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));
参考文献:
- http://php.net/manual/en/function.error-reporting.php
- http://php.net/manual/en/mysqli.error.php
- http://php.net/manual/en/function.mysqli-connect.php
- http://php.net/manual/en/language.constants.php
将 error reporting 添加到您的文件的顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:显示错误只应在暂存阶段进行,绝不能在生产阶段进行
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));
参考文献:
- http://php.net/manual/en/function.error-reporting.php
- http://php.net/manual/en/mysqli.error.php
- http://php.net/manual/en/function.mysqli-connect.php
- http://php.net/manual/en/language.constants.php
将 error reporting 添加到您的文件的顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:显示错误只应在暂存阶段进行,绝不能在生产阶段进行