PDO更新不起作用,没有错误

时间:2014-04-27 00:15:45

标签: php mysql sql pdo

我盯着自己无法执行此更新声明的事实。

$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'确实有效)。

The database structure

1 个答案:

答案 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();
}