我盯着自己无法执行此更新声明的事实。
$prepare = 'UPDATE plugins SET status=? WHERE name=?';
$execute = array("0", "testplugin");
$statement = $this->_dbConnectionInstance->prepare($prepare);
$statement->execute($execute);
我将错误报告设置为PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION
,并且不会产生任何错误。但是,执行后数据库中的行不会更改。直接在数据库上执行查询(PHPMyAdmin,用值替换问号)确实很有用。
此外,数据库连接是可以的(简单查询'SELECT * FROM plugins'
确实有效)。
答案 0 :(得分:0)
我使用了一个在线可用的数据库类(PDO-Quick),其中包含架构错误。实例化数据库类时,将启动事务(1)。但是,在课堂上没有任何地方承诺并且交易始终保持“开放”。我现在在每个查询之前开始一个事务,在执行之后提交它,并在发生任何错误时回滚(2)。
<强>(1)强>
$this->_dbConnectionInstance->beginTransaction();
<强>(2)强>
try {
$this->_dbConnectionInstance->beginTransaction();
$stmt = $this->_dbConnectionInstance->prepare($prepare);
$stmt->execute($execute);
$this->_dbConnectionInstance->commit();
} catch(PDOException $e) {
$this->_dbConnectionInstance->rollBack();
exit();
}