DbCriteria dans le framework Yii : interrogez efficacement la base de données
Le framework Yii est un framework PHP rapide, efficace et sûr. Il fournit une classe d'opérations de base de données puissante, DbCriteria, qui peut nous aider à interroger plus efficacement les bases de données. et améliorer les performances des applications. Cet article explique comment utiliser DbCriteria pour les requêtes de base de données.
Création de DbCriteria
Nous pouvons utiliser le code suivant pour créer une instance de DbCriteria :
$criteria = new CDbCriteria;
DbCriteria fournit une méthode de requête en streaming, qui nous permet pour définir les conditions de requête en appelant des méthodes dans une chaîne, par exemple :
$criteria->select('title, content') ->addCondition('status=:status') ->params(array(':status'=>1)) ->order('create_time DESC') ->limit(10);
Dans le code ci-dessus, nous utilisons la méthode select pour spécifier les champs à interroger, utilisez la méthode addCondition pour définir les conditions de requête et utilisez la méthode params pour lier les paramètres de requête, utilisez la méthode order pour trier les résultats de la requête et utilisez la méthode limit pour définir le nombre de résultats de requête.
DbCriteria fournit une variété de méthodes de requête, notamment select, addCondition, params, order, limit et d'autres méthodes. Ci-dessous, nous présenterons ces méthodes une par une.
select method
select méthode est utilisée pour spécifier les champs à interroger Elle peut recevoir un ou plusieurs noms de champs en paramètres, par exemple :
$criteria->select('id, name, email');#. 🎜🎜 #Vous pouvez également spécifier les champs à interroger sous forme de tableau :
$criteria->select(array('id', 'name', 'email'));méthode addCondition la méthode addCondition est utilisée pour ajouter des conditions de requête, et elle peut recevoir les différents paramètres suivants :
$criteria->addCondition('age>:age'); $criteria->addCondition('gender=:gender'); $criteria->params(array(':age'=>18, ':gender'=>'Female'));Dans le au-dessus du code, nous utilisons la méthode addCondition pour ajouter Les deux conditions de requête sont liées aux paramètres de requête à l'aide de la méthode params. méthode paramsLa méthode params est utilisée pour lier les paramètres de requête. Elle reçoit un tableau en tant que paramètre. La clé du tableau représente le nom du paramètre à lier, et le. value représente le nom du paramètre à lier. Par exemple :
$criteria->params(array(':age'=>18, ':gender'=>'Female'));Dans le code ci-dessus, nous utilisons la méthode params pour lier deux paramètres de requête : :age et :gender. order methodLa méthode order permet de trier les résultats de la requête Elle reçoit une chaîne en paramètre, indiquant les conditions de tri, par exemple :
.
$criteria->order('create_time DESC');#🎜 🎜#Dans le code ci-dessus, nous utilisons la méthode order pour trier les résultats de la requête par ordre décroissant en fonction du champ create_time.
méthode limite
la méthode limite est utilisée pour limiter le nombre de résultats de requête. Elle reçoit un entier en paramètre, indiquant le nombre de résultats de requête, par exemple : #🎜. 🎜#
$criteria->limit(10);#🎜 🎜#Dans le code ci-dessus, nous utilisons la méthode limit pour limiter le nombre de résultats de requête à 10 enregistrements.
Utilisation de DbCriteria
Après avoir créé une instance DbCriteria, nous pouvons l'appliquer à la requête des deux manières suivantes :
#🎜🎜 #Utilisez la méthode find pour interroger un seul enregistrement
$model = Post::model()->find($criteria);Dans le code ci-dessus, nous appelons la méthode find de la classe modèle Post et passons l'instance DbCriteria en tant que paramètre à la méthode à effectuer une requête d'enregistrement d'un seul enregistrement.
$models = Post::model()->findAll($criteria);Dans le code ci-dessus, nous appelons la méthode findAll de la classe de modèle Post et ajoutons l'instance DbCriteria Transmettez-la en tant que paramètre à cette méthode pour interroger plusieurs enregistrements.
$models = Yii::app()->db->createCommand() ->select('id, name, email') ->from('user') ->where('status=:status', array(':status'=>1)) ->order('create_time DESC') ->limit(10) ->queryAll();
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!