2010-05-24 4 views
2

J'utilise la fonction insert() de Zend_Db_Table_Abstract.La fonction Zend_Db_Table_Abstract-> insert() est-elle sûre?

Les données insérées sont des entrées utilisateur, donc je suis curieux de savoir si ZF effectue le nettoyage des données pour moi, ou si je devrais le faire moi-même avant d'appeler la fonction insert().

+0

Merci pour l'aide les gars. J'ai mis à jour mes classes DbTable donc chaque fois que j'interroge un champ de texte, je lance d'abord: $ data = $ this -> _ db-> quote ($ data); De plus, les entiers sont devenus: $ data = (int) $ data; –

Répondre

2

Lorsque vous devez utiliser des guillemets (quote(), quoteInto()) avec Zend_Db_Table:

  • insert (non)
  • update (oui)
  • delete (oui)
  • requêtes SQL en utilisant la adaptateur directement (oui).

Utiliser des guillemets avec Zend_Db_Table_Select (habituellement non); assurez-vous d'examiner la sortie de la requête.

Voici une excellente réponse de l'un des auteurs de Zend_Db (avoiding MySQL injections with the Zend_Db class).

0

La méthode d'insertion Zend_Db assainit les paramètres envoyés.

+1

Pas tout à fait vrai. _Table-> update() ... "Remarque: Les valeurs et les identifiants de l'expression SQL ne sont pas indiqués pour vous Si vous avez des valeurs ou des identifiants qui nécessitent une citation, vous êtes responsable de cette opération.(), et quoteIdentifier() des méthodes de l'adaptateur de base de données. " – typeoneerror

+0

Doux, merci pour l'info (mise à jour). Incidemment, vous n'avez pas besoin d'encoder SQL dans la fonction de mise à jour avec Zend_Db_Expr() '(par exemple nouveau Zend_Db_Expr ('CURDATE()'))' –

Questions connexes