-1

データベース クラスの構築に関する以前の質問で、静的 db クラスを PDO に切り替える必要があると通知されました。

これは、テーブルにデータがあることがわかっている場合でも、dbDataArray が空の配列を出力することを除いて、これまでのところすべてが機能するものです。

class db
{
    private static $connection;
    const __DB__HOST__      = __DB__HOST__;
    const __DB_USERNAME__   = __DB_USERNAME__;
    const __DB_PASSWORD__   = __DB_PASSWORD__;
    const __DB_NAME__       = __DB_NAME__;

    private static function getConnection() {
            if (self::$connection === null) {
                try {
                self::$connection = new PDO("mysql:__DB_NAME__=pdo;host=".__DB_HOST__, __DB_USERNAME__, __DB_PASSWORD__ );
                return self::$connection;
            }
            catch(PDOException $e)
            {
                echo $e->getMessage();
            }

        }
        /*** close the database connection ***/
        //self::$connection = null;
    }

    //return all results from sqlquery in array
    public static function dbDataArray($sql_string){
        $conn = self::getConnection();
        $sth = $conn->prepare($sql_string);
        $sth->execute();
        $result = $sth->fetchAll();
        print_r($result);
    }
}
4

1 に答える 1

3

getConnection コードを次のように変更してみてください。

self::$connection = new PDO("mysql:dbname=".__DB_NAME__.";host=".__DB_HOST__, __DB_USERNAME__, __DB_PASSWORD__ );
于 2013-09-19T04:23:48.180 に答える