Maison >cadre php >YII >DbCriteria dans le framework Yii : interrogez efficacement la base de données

DbCriteria dans le framework Yii : interrogez efficacement la base de données

WBOY
WBOYoriginal
2023-06-21 12:02:371022parcourir

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 :

    Une chaîne représentant la condition de requête, par exemple : "age>18"
  • Un tableau représentant la condition de requête, pour exemple : array('age> :age', array(':age'=>18));
Par exemple :

$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 params

La 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 method

La 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.
  1. Utilisez la méthode findAll pour interroger plusieurs enregistrements

$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.
  1. Remarque : Nous pouvons également utiliser la méthode de requête pour interroger à l'aide de DbCriteria. Par exemple :
  2. $models = Yii::app()->db->createCommand()
        ->select('id, name, email')
        ->from('user')
        ->where('status=:status', array(':status'=>1))
        ->order('create_time DESC')
        ->limit(10)
        ->queryAll();
Dans le code ci-dessus, nous obtenons l'objet de connexion à la base de données via Yii::app()->db, utilisons la méthode createCommand pour créer un objet de commande, puis utilisons select, from,where, order , limit et d'autres méthodes pour définir les conditions de requête, et enfin appeler la méthode queryAll pour interroger.

Summary

DbCriteria est un outil de requête de base de données très puissant dans le framework Yii. Il fournit une série de méthodes faciles à utiliser pour définir des conditions de requête, lier des paramètres de requête, et trier. Les résultats des requêtes, la quantité limitée de requêtes, etc. nous aident à interroger la base de données plus efficacement et à améliorer les performances des applications. Nous devrions utiliser pleinement DbCriteria pour optimiser notre code lors des requêtes de base de données.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn