2012-02-03 16 views
5

Ben Zend Framework yeniyim ve ben bundan etkilenen satırların sayısını nasıl alabilirim öğrenmek istiyorum:sayısı Zend DB (GÜNCELLEME)

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

Birkaç mesajları gördü Bu forumda, ancak count()'u kullanarak satırları gerçekten satabildiğiniz MySQLi ve SELECT ifadelerine dayanırız.

rowCount'u desteklemek için bunu nasıl değiştirebileceğimi öneren herkes olabilir.

Bu benim veritabanına bağlanmak nasıl:

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

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

Bu benim Bootstrap.php içindedir. Bu şekilde yaptım çünkü birden fazla veritabanında çalışıyorum.

cevap

6

Zend_Db_Statement_Pdo, bir rowCount() yöntemine sahiptir.

API docs

bu açıklama nesnesi tarafından çalıştırılan son INSERT yürütülmesi, DELETE veya UPDATE deyiminden etkilenen satır sayısını döndürür bakınız.

Bu sadece can gelir: -

$rowsAffected = $stmt->rowCount(); 

Düz yürütmek çağıran() ve etkilenen satır sayısını almalısınız sonra.

+0

Sorumu DB bağlantısını eklemek üzere yeni düzenledim. Teşekkür ederiz – Sthe

+1

Çözümüm sizin için çalışmalıdır [Zend_Db_Statement_Pdo] (http://framework.zend.com/apidoc/1.11/db_Db_Statement_Pdo.html#%5CZend_Db_Statement_Pdo) bir rowCount() yöntemine sahiptir. – vascowhite

+0

Teşekkürler. Çalışıyor. Yanlış nesneye 'rowCount() 'ı uygulamayı denedim. Teşekkür ederiz :-) – Sthe