[英]PHP MySQL : Unable to Connect to Database
我正在尝试连接到php中的数据库,数据库名称为photo_gallery
以下是我的代码
数据库.php
define("DB_SERVER", "localhost");
define("SERVER_NAME", "root");
define("DB_PASS" ,"");
define("DB_NAME", "photo_gallery");
class MySQLDatabase{
function __construct(){
$this->open_connection();
}
private $connection ;
public function open_connection (){
$this->connection = mysqli_connect(DB_SERVER, DB_NAME, DB_PASS);
if(!$this->connection){
die("Connection failed".mysqli_error());
}
else {
$db_select= mysqli_select_db($this->connection,DB_NAME);
if(!$db_select){
echo 'Database selection failed '.mysqli_error($this->connection);
}
}
}
public function query($sql){
$query = mysqli_query($this->connection,$sql);
$this->confirm_query($query);
return $query;
}
private function confirm_query($result_set){
$query= mysqli_query($this->connection,$result_set);
if(!$query){
die('Database query failed '.mysqli_error());
}
}
public function close_connection(){
if(isset($this->connection)){
mysqli_close($this->connection);
unset($this->connection);
}
}
}
现在,当我运行时,出现以下错误
数据库选择失败用户'@'@ localhost'的访问被拒绝。 基地'photo_gallery
我已经确认了用户名/密码和数据库详细信息,但仍然无法解决。 请指导我
user. 您尚未提供用户名mysqli_connect(DB_SERVER, DB_NAME, DB_PASS)
行未定义用户,因此您尝试在用户的情况下连接到数据库。
尝试使用mysqli_connect(DB_SERVER, SERVER_NAME, DB_NAME, DB_PASS)
。
mysqli-connect的connect方法的第二个参数是USERNAME。 这样使用
$ this-> connection = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASS,DB_NAME);
您的问题是您为常量选择了坏名字。
SERVER_NAME不是数据库用户名的好名字。
为此,您使用了错误的..我建议将常量更改为DB_USER,并在mysqli_connect()函数中正确使用它。
记住要使用真正代表他们所做/所引用的名称。
这是语法:
$conn= mysqli_connect("myhost","myuser","mypassw","mydb");
这是代码:
数据库.php
define("DB_SERVER", "localhost");
define("SERVER_NAME", "root");
define("DB_PASS" ,"");
define("DB_NAME", "photo_gallery");
class MySQLDatabase{
function __construct(){
$this->open_connection();
}
private $connection ;
public function open_connection (){
$this->connection = mysqli_connect(DB_SERVER, SERVER_NAME, DB_PASS, DB_NAME);
if(!$this->connection){
die("Connection failed".mysqli_error());
}
else {
$db_select= mysqli_select_db($this->connection,DB_NAME);
if(!$db_select){
echo 'Database selection failed '.mysqli_error($this->connection);
}
}
}
public function query($sql){
$query = mysqli_query($this->connection,$sql);
$this->confirm_query($query);
return $query;
}
private function confirm_query($result_set){
$query= mysqli_query($this->connection,$result_set);
if(!$query){
die('Database query failed '.mysqli_error());
}
}
public function close_connection(){
if(isset($this->connection)){
mysqli_close($this->connection);
unset($this->connection);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.