PDO和定义的常量.. php错误

时间:2012-07-04 05:30:51

标签: php

我在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'

我做错了什么?

2 个答案:

答案 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);