受影响的行数Zend DB(UPDATE)

Sth*_*the 5 mysql zend-framework count

我是Zend Framework的新手,我想知道如何从中获取受影响的行数:

$sql = "UPDATE auth SET act='', status='1' WHERE username = ? AND act = ? ";
$stmt = $this->dbh->prepare($sql);
$stmt->execute(array($this->username, $this->key));
Run Code Online (Sandbox Code Playgroud)

我在这个论坛上看到了一些帖子,但是我们基于MySQLi和SELECT语句,你可以用它来实际计算行数count().

任何人都可以建议我如何改变它来支持rowCount.

这是我连接到我的数据库的方式:

$parameters = array(
    'host' => 'localhost',
    'username' => 'root',
    'password' => '',
    'dbname' => 'users'
);

try {
        $db = Zend_Db::factory('Pdo_Mysql', $parameters);
...
Run Code Online (Sandbox Code Playgroud)

这是我的Bootstrap.php.我是这样做的,因为我使用多个数据库.

vas*_*ite 7

Zend_Db_Statement_Pdo有一个rowCount()方法.

请参阅API文档

返回由此语句对象执行的最后一个INSERT,DELETE或UPDATE语句的执行所影响的行数.

这意味着您可以简单地: -

$rowsAffected = $stmt->rowCount();
Run Code Online (Sandbox Code Playgroud)

在调用execute()之后直接调用,你应该得到受影响的行数.

  • 请注意,受影响的行可能少于匹配的行,如果您将它们"更新"为与之前相同的值.无法知道匹配的行数. (2认同)