兼容由於我建立了與外部數據庫的連接,我需要一種方法,只有在必要時才連接到數據庫(如果有查詢的話) 。x :: prepare()的聲明應該與PDO :: prepare
我發現在計算器上這樣的回答:Auto connecting to PDO only if needed
這是完美的,我採用這種方法。我認爲這是一個乾淨的方式來做到這一點。但這裏有一個問題:
幾乎總是我用準備好的發言我的查詢,例如:
$sth = $dbh->prepare("SELECT username FROM users WHERE username = :username");
$sth->bindParam(':username', $_POST['username'], PDO::PARAM_STR);
$sth->execute();
但是,使用帶班以上回答的準備語句它給了我:
Warning: PDO::prepare(): SQLSTATE[00000]: No error: PDO constructor was not called
Fatal Error: Call to a member function bindParam() on null
所以,我在班上說:
public function prepare($query)
{
$this->checkConnection();
return parent::prepare($query);
}
和它的作品。但它總是讓我警告:
Strict Standards: Declaration of DB::prepare() should be compatible with PDO::prepare($statement, $options = NULL) in class_pdo.php on line 0
有沒有人知道爲什麼?
謝謝。
您好,感謝您的建議,只是一件事,我現在注意到。用NULL它給了我'PDO :: prepare()期望參數2是數組,null給定'。所以,而不是NULL我插入了一個空的數組,它的工作原理。 – Keaire