標準の mysql 接続を置き換えるために PDO 接続をセットアップしようとしています。今まで、典型的な mysql_connect、mysql_select_db などのコンストラクタを持つ DB_Class というクラスがあります。
DB にヒットする各オブジェクトのコンストラクターで DB_Class の新しいインスタンスを作成して使用します。どこかで例をオンラインで入手しましたが、うまくいくようです。
ここで PDO に切り替えたいと思います。ここで同じロジックを試していますが、期待どおりに機能していません。これが私が持っているものです。
class DB_Class {
function __construct() {
//$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or
// die('Oops connection error -> ' . mysql_error());
//mysql_select_db(DB_DATABASE, $connection) or die('Database error -> ' . mysql_error());
$dbConnString = "mysql:host=" . DB_SERVER . ";port=".DB_PORT." dbname=" . DB_DATABASE;
$dbConnection = new PDO($dbConnString, DB_USERNAME, DB_PASSWORD);
//$dbConnection = new PDO('mysql:dbname='.DB_DATABASE.';host='.DB_SERVER.';charset=utf8', DB_USERNAME, DB_PASSWORD);
$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
}
これが私のクライアントクラスのコンストラクターです
//Initialize the DB Class
public function __construct() {
$db = new DB_Class();
}
使い方がよくわからないのはここですか?
public function FindByOwnerID($id) {
$clients = array();
$stmt = $db->prepare("SELECT * FROM Client WHERE OwnerID = :id");
$stmt->execute(array(':id' => $id));