Pokud potřebujete na tabulce zavolat update, tak to v Zend_Db
napíšete nějak takto:
$db->update('tabulka', $bind, $where);
S tím že $where se běžně sestavuje dvěma způsoby:
1. ruční sestavení where podmínky
$whereStatements = array(
$db->quoteInto('name = ?', $name),
$db->quoteInto('surname = ?', $surname),
);
$where = implode(' AND ', $whereStatements);
2. použití pole oquotovaných podmínek
$where = array(
$db->quoteInto('name = ?', $name),
$db->quoteInto('surname = ?', $surname),
);
Od verze 1.8.0 je díky úpravě metody _whereExpr() v rámci
issue
ZF-1726 možné použít i třetí, ještě elegantnější způsob:
3. podmínky podobné jako u where() v Zend_Db_Select
$where = array(
'name = ?' => $name,
'surname = ?' => $surname
);
Všechny výše popsané ukázky vygenerují stejné SQL, takže není důvod nepoužívat ten poslední – nejhezčí. Jeho existenci jsem objevil náhodou – překvapilo mě, že kolega použil první způsob a tak jsem se díval, co to vlastně dělá na pozadí.
WHERE v metodě delete() se generuje stejnou metodou, takže
výše uvedené platí i pro ni.