【发布时间】:2011-06-02 20:33:47
【问题描述】:
我正在尝试将 PHP 应用程序从 MySQL 迁移到 SQLite,而一些以前可以工作的东西现在只是停止工作了。我通过自定义数据库包装类使用 PDO(该类是单例,这样做似乎合乎逻辑)。
问题: 当尝试对准备好的语句执行查询时,它会抛出“致命错误:在非对象上调用成员函数 execute() ...”。
相关代码(经过几个小时的 var_dumps 和 try-catch 将其缩小到此):
连接字符串:
$this->connection = new PDO("sqlite:"._ROOT."/Storage/_sqlite/satori.sdb");
显然,这里的 $connection 变量是类的私有变量。
错误发生在这里(在应该执行数据库插入的函数内):
try{
$statement = self::getInstance()->connection->prepare($sql);
}catch (PDOException $e){
print $e->getMessage;
}
try{
var_dump($statement);
$statement->execute($input);
}catch (Exception $e){
print $e->getMessage();
}
更准确地说,它发生在我尝试 $statement->execute($input) 时。
任何帮助表示赞赏。谢谢。
【问题讨论】:
标签: php database sqlite pdo prepared-statement