2012-02-03 15 views
5

Sono nuovo di Zend Framework e mi piacerebbe sapere come posso ottenere il numero di righe interessate da questo:numero di righe interessate Zend DB (UPDATE)

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

ho visto qualche post su questo forum, ma sono basati su istruzioni MySQLi e SELECT in cui è possibile effettivamente contare le righe utilizzando count().

Qualcuno può suggerire come posso modificare questo per supportare rowCount.

Questo è come mi collego al mio database:

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

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

Questo è a mio Bootstrap.php. L'ho fatto in questo modo perché lavoro con più di un database.

risposta

6

Zend_Db_Statement_Pdo ha un metodo rowCount().

Vedi l'API docs

Restituisce il numero di righe interessate dall'esecuzione dell'ultimo INSERT, DELETE o UPDATE eseguita da questo oggetto Statement.

Questo significa che può semplicemente: -

$rowsAffected = $stmt->rowCount(); 

dritta dopo la chiamata execute() e si dovrebbe ottenere il numero di righe interessate.

+0

Ho appena modificato la mia domanda per includere la connessione DB. Grazie – Sthe

+1

La mia soluzione dovrebbe funzionare come [Zend_Db_Statement_Pdo] (http://framework.zend.com/apidoc/1.11/db_Db_Statement_Pdo.html#%5CZend_Db_Statement_Pdo) ha un metodo rowCount(). – vascowhite

+0

Grazie. Funziona. Ho provato ad applicare 'rowCount()' sull'oggetto sbagliato. Grazie :-) – Sthe

Problemi correlati