Nehmen wir folgenden Anwendungsfall an:
$userSelect = new Zend_Db_Select($db); $userSelect->from('User') ->where('Name = ?', $name);
Im Normalfall sollte die Query wie folgt aufgelöst werden:
WHERE Name = 'MeinName'
Für den Fall, dass $name = NULL, also es nicht übergeben wird, erzeugt Zend folgendes Query, welches folglich einen SQL Fehler wirft:
WHERE NAME = ?
Um diesen Fall zu vermeiden, castet man die Variable in den Datentyp, den das Tabellenfeld hat, bspw. in einen String:
->where('Name = ?', (string) $name);
Ist nun $name = NULL, so erhalten wir dennoch eine korrekte Syntax:
WHERE Name = ''