【发布时间】:2014-01-01 20:53:16
【问题描述】:
我正在为一个网站编写一个注册脚本,并在 registration.php 脚本中使用函数 databaseConnection 测试了代码,一切正常,但现在我将 databaseConnection 函数替换为一个单独的文件,所以我不必输入相同的代码每次都再来一次。
我从databaseConnection.php文件中的数据库中取出实例并将其加载到registration.php中的私有变量$db_connection中,现在我想为sql语句准备连接,但脚本返回错误'调用未定义方法 DatabaseConnection::prepare()'
这是 databaseConnection.php 脚本
<?php
class DatabaseConnection {
//private zodat niemand een nieuwe kan maken
private static $instance = null;
//constructor private zodat niemand instantie kan klonen
private function __construct(){
try{
$this->db_connection = new PDO('mysql:host='. DB_HOST .';dbname='. DB_NAME, DB_USER, DB_PASS);
return true;
} catch (PDOException $exception){
$this->errors[] = $this->lang['Database error'];
return false;
}
}
public static function getInstance(){
if(self::$instance === null)
self::$instance = new DatabaseConnection();
return self::$instance;
}
}
?>
我像这样在registration.php中的__construct函数中将实例加载到$db_connection中
$this->db_connection = databaseConnection::getInstance();
现在我的代码在 $check_user_name=... 行崩溃了
...
} else if ($this->db_connection != null){
$check_username_query = $this->db_connection->prepare('SELECT user_name, user_email FROM users WHERE user_name=:user_name OR user_email=:user_email');
...
有人可以帮我解决这个错误吗?我在 stackoverflow 上阅读了类似的问题,但无法通过那里提供的信息弄清楚。
问候
【问题讨论】:
标签: php mysql object pdo instance