受影响的行数Zend DB(UPDATE)

时间:2012-02-03 16:43:04

标签: 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));

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

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

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

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

try {
        $db = Zend_Db::factory('Pdo_Mysql', $parameters);
...

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

1 个答案:

答案 0 :(得分:7)

Zend_Db_Statement_Pdo有一个rowCount()方法。

请参阅API docs

  

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

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

$rowsAffected = $stmt->rowCount();

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