兼容由于我建立了与外部数据库的连接,我需要一种方法,只有在必要时才连接到数据库(如果有查询的话) 。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