繁体   English   中英

无法连接数据库MySql

[英]Unable To Connect Database MySql

我是PHP PDO的新手,并且在Config.php上编写了以下代码

class DBConnect{
    /* defining constants for database connectivity  */
    private $host="127.0.0.1";
    private $user="root";
    private $pass="";
    private $dbname="sms-portal";

    private $dbh;
    private $error;

    public function __construct(){
        // set DSN
        $dsn='mysql:host='.$this->host.'dbname='.$this->dbname;
        //set Options

        $options= array(
            PDO::ATTR_PERSISTENT => true,
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        );

        // Create New PDO instance
        try{
            $this->dbh=new PDO($dsn, $this->user, $this->pass, $options);
            //die("here");
        }
        // Catch any errors here
        catch(PDOException $e){
            $this->error=$e->getMessage();
        }   
    }
}

在使用localhost并提交NewUserRegistration时,会在警告消息之后显示其“向我显示”。

Warning: PDO::__construct() [pdo.--construct]: 
php_network_getaddresses: getaddrinfo failed: 
No such host is known. in config.php on line 25

Warning: PDO::__construct() [pdo.--construct]: 
[2002] php_network_getaddresses: getaddrinfo failed: 
No such host is kn (trying to connect via tcp://127.0.0.1dbname=sms-portal:3306) 
    in config.php on line 25

$dsn='mysql:host='.$this->host.'dbname='.$this->dbname;

看起来您在dbname =之前缺少分号-尝试以下操作:

$dsn='mysql:host='.$this->host.';dbname='.$this->dbname;

  $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

注意:您刚刚错过了“;” 在主机和dbname之间。

添加; dbname之前的分号:

$dsn='mysql:host='.$this->host.';dbname='.$this->dbname;
                            //  ^ this one

如果您看到此错误,则说明主机无法正常终止:

tcp://127.0.0.1dbname=sms-portal:3306

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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