Bu çalışması gerekir? (Giriş sayısını artırmak?)
// update the login count
$data = array(
'logins' => 'logins + 1'
);
$n = $db->update('users', $data, 'user_id = '.$_userId);
$data = array(
'logins' => new Zend_Db_Expr('logins + 1')
);
SQL enjeksiyon gibi savunmasız değildir bu yüzden de alıntı kullanın:
$n = $db->update('users', $data, $db->quoteInto('user_id = ?', $_userId));
Yorumlarınız Re: Evet, update () yöntemi durumunda, bu tip Zend_Db_Expre bir nesneyi kullanmak sürece değişmez bir değer yolluyoruz varsayar. Bu kendinizi test edebilirsiniz:
$db->getProfiler()->setEnabled(true);
$n = $db->update('users', $data, $db->quoteInto('user_id = ?', $_userId));
$qp = $db->getProfiler()->getLastQueryProfile();
echo $qp->getQuery() . "\n";
Eğer $data
dizide verecek herhangi bir edebi değeri bu kadar sorgu bu gibi bakıyor biter parametrelendirildiğinde:
UPDATE `users` SET `login` = ? WHERE user_id = 123
Eğer sınıf Zend_Db_Expre bir nesne kullanırsanız, bunun yerine parametrelendirilmesidir, kelimenin tam anlamıyla sorgu içine dize interpolate bilir:
UPDATE `users` SET `login` = NOW() WHERE user_id = 123
Böyle ifadeler interpolate zaman güvenlik açıklarını alamadım bu yüzden size doğrulama sorumlu olduğunu unutmayın.