0

我在connect.php 中为数据库设置了常量。

连接.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'

我做错什么了?

4

2 回答 2

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;
于 2012-07-04T05:36:43.793 回答
1

你需要使用这个 -

$this->connect = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASSWORD);
于 2012-07-04T05:41:19.893 回答