Vous le savez probablement déjà, il est possible, avec Active Record, de faire vos conditions proprement de deux manières différentes :
Model.find(:all, :conditions => ['champ = ?', valeur])
Model.find(:all, :conditions => {:champ => valeur})

Le second est plus propre. Cependant à première vue, il n’est pas possible d’y faire des conditions autres que le égal (=).
Du coup dès que votre condition devient un chouilla complexe, il deviendrait nécessaire d’utiliser les crochets. C’est dommage.

Heureusement, il des conditions autres que le = sont gerées avec les hashes.
Petit exemple de requête
Model.find(:all, :conditions=>{
:title => "Title",          # title='Title'
:published_at => (Date.now-30 .. Date.now),  # published_at BETWEEN xxx AND xxx
:rating => [ 4, 5, 6 ],          # rating IN ( 4, 5, 6 )
:content => /(a|b|c)/          # REGEXP '(a|b|c)'
)

Cela permet déjà de faire quelques requêtes supplémentaires. Cependant dès que l’on va vouloir faire des choses comme des LIKE, des !=, des >= ou des <=, nous allons, de toute façon, devoir passer par des tableaux.

Je publie ce billet un peu rapidement comme une note car j’ai eu du mal à trouver l’information lorsque j’en ai eu besoin.

La documentation de Zend Framework n’indique que les informations de connexion pour SQLite dans app.ini.
Mais tout le monde n’utilise pas SQLite (et pour donner un avis totalement personnel, je dirais heureusement).

Voici donc les informations requises pour la configuration de MySQL dans votre application utilisant Zend Framework.

[general]
database.adapter = "MYSQLI"
database.params.host = "localhost"
database.params.username = "root"
database.params.password = ""
database.params.dbname = "myDatabase"

Et puis rien que pour le fun, Oracle :
[general]
database.adapter = "Oracle"
database.params.host = "localhost"
database.params.username = "root"
database.params.password = ""
database.params.dbname = "myDatabase"

SQL Server
[general]
database.adapter = "Pdo_Mssql"
database.params.host = "localhost"
database.params.username = "root"
database.params.password = ""
database.params.dbname = "myDatabase"

Et PostgreSQL
[general]
database.adapter = "Pdo_Pgsql"
database.params.host = "localhost"
database.params.username = "root"
database.params.password = ""
database.params.dbname = "myDatabase"

 
Fork me on GitHub