0

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'

私は何を間違えましたか?

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 に答える