Lors de la mise à jour et insérez des requêtes à l'aide de zend_db, j'ai souvent besoin de définir des valeurs égales à NULL (pas ''). Cependant, le comportement par défaut de zend_db :: insert () et zend_db :: update () semble être que les valeurs vides sont traduites en chaînes vides ('') et dans la base de données comme telle. p>
Est-ce que quelqu'un connaît une façon de forcer une valeur nulle pour entrer dans des champs si la valeur est vide dans PHP? P>
4 Réponses :
Essayez de définir les champs affectés sur: nouveau zend_db_expr ('null') code> strong> p> P>
J'aime cette méthode pour la abstraction i> que cette méthode vous donne
J'ai toujours été capable de faire cela en utilisant NULL de PHP:
$toUpdate = array('nullValue' => null, 'otherValue' => 'something'); Zend_Db::update($table, $toUpdate, $where);
Alors que Johrn, j'ai pu faire cela avec la valeur NULL de PHP:
$value = null; $what = array($columnName => $value); $where = $this->_dbTableName->getAdapter()->quoteInto('Id = ?', $dbRecord->Id); $this->_dbTableName->update($what, $where);
Tout en utilisant Zend 2.4.7 pour ceux qui visitent ce problème, j'ai pu utiliser ceci avec William Lannen < / a> la réponse de la fourniture d'une inspiration. En supposant gettable () code> renvoie un
zend \ db \ tablegatewayway code> objet: