我是PHP PDO的新手,我在配置上编写了以下代码.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();
}
}
}
在处理本地主机并提交新用户注册表时,它向我显示以下警告消息。
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
之前添加;
分号:
$dsn='mysql:host='.$this->host.';dbname='.$this->dbname;
// ^ this one
如果您查看错误,则主机未正确终止:
tcp://127.0.0.1dbname=sms-portal:3306