且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

受影响的行数Zend DB(UPDATE)

更新时间:2023-02-07 18:21:34

Zend_Db_Statement_Pdo有一个rowCount >

请参阅 API文档


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

这意味着您可以: -

  $ rowsAffected = $ stmt-> rowCount(); 

在调用execute()后直接获取受影响的行数。


I'm new to Zend Framework and I'd like to know how I can get the number of affected rows from this:

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

I saw a few posts on this forum, but they we based on MySQLi and SELECT statements where you can actually count the rows using count().

Can anyone suggest how I can alter this to support rowCount.

This is how I connect to my database:

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

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

This is in my Bootstrap.php. I did it this way because I work with more than one databases.

Zend_Db_Statement_Pdo has a rowCount() method.

See the API docs

Returns the number of rows affected by the execution of the last INSERT, DELETE, or UPDATE statement executed by this statement object.

This means you can simply:-

$rowsAffected = $stmt->rowCount();

Straight after calling execute() and you should get the number of rows affected.