我在connect.php中为数据库设置了常量。
connect.php
define('DB_HOST','localhost');
define('DB_NAME','dbname');
define('DB_USER','dbuser');
define('DB_PASSWORD','dbpass');
这是数据库类
require("connect.php");
class Database {
private $connect;
function opendb() {
$this->connect = new PDO(DB_NAME, DB_USER, DB_PASSWORD);
}
function closedb() {
$this->connect = null; //close connection
}
}
当我加载访问数据库类的页面时,我收到此错误。
Fatal error: Uncaught exception 'PDOException' with message 'invalid data source name'
我做错了什么?
答案 0 :(得分:2)
您必须在此处提供连接字符串,而不是常量DB_NAME:
$this->connect = new PDO(DB_NAME, DB_USER, DB_PASSWORD);
喜欢
$dsn = 'mysql:host=localhost;dbname='.DB_NAME;
$this->connect = new PDO(DB_NAME, DB_USER, DB_PASSWORD);
修改强>
您还应该使用HOST常量作为其定义。
$dsn = 'mysql:host='.DB_HOST.';dbname='.DB_NAME;
答案 1 :(得分:1)
你需要使用它 -
$this->connect = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASSWORD);