繁体   English   中英

PHP MySQL:无法连接到数据库

[英]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);

http://php.net/manual/zh/mysqli.construct.php

您的问题是您为常量选择了坏名字。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM