0

本当に簡単に作業できるはずだと思うものを手に入れるのに苦労しています。PDOを使用してデータベースに接続するクラスを作成しました。最初は、直接SQLクエリをデータベースに渡す関数を作成したいと思います。

class PDO_MySQL
{
    private $_db;
    private $connection_string;

    public function __construct()
    {
        $this->_db = new PDO($this->connection_string, DB_USERNAME, DB_PASSWORD);
    }
    public function DB_Query($sql)
    {
        $query = $this->_db->query($sql);
        return $query;
    }
}

それから私のコードで:

$db = new PDO_MySQL();
$people = $db->DB_Query("SELECT * FROM about_us");
print_r($people);

しかし、これは戻ってきています

PDOStatement Object ( [queryString] => SELECT * FROM about_us )

結果セットを返すためにそれを探しているとき。

接続文字列が設定され、接続は正常です。この投稿の余分なコードを削除しました。

二次的な質問、これは最良のアプローチですか?MySQLiおよび非クラスベースのスクリプトから移行しています。

4

1 に答える 1

1

それ以外の

public function DB_Query($sql)
{
    $query = $this->_db->query($sql);
    return $query;
}

あなたはしなければならない:

public function DB_Query($sql)
{
    $query = $this->_db->prepare($sql);
    $query->execute();
    return $query->fetchAll();
}

なぜなら

PDO :: query — SQLステートメントを実行し、結果セットをPDOStatementオブジェクトとして返します

于 2012-05-30T11:48:37.363 に答える