Maison >cadre php >YII >Trois façons d'exploiter la base de données dans yii

Trois façons d'exploiter la base de données dans yii

王林
王林original
2020-02-17 16:36:152436parcourir

Trois façons d'exploiter la base de données dans yii

1. Méthode PDO d'exécution de SQL natif

Le code est le suivant :

$sql = "";//原生态sql语句 
xx::model()->dbConnection->createCommand($sql)->execute();

2. Méthode d'enregistrement actif

(1) Le code de la nouvelle méthode

est le suivant :

$post=new Post; 
$post->title='sample post'; 
$post->content='post body content'; 
$post->save();

(Tutoriels associés recommandés : yii framework )

(2) Méthode des critères

Vous pouvez également utiliser $condition pour spécifier des conditions de requête plus complexes. Au lieu d'utiliser une chaîne, nous pouvons faire de $condition une instance de CDbCriteria, ce qui nous permet de spécifier des conditions qui ne se limitent pas à WHERE.

Le code est le suivant :

$criteria=new CDbCriteria; 
$criteria->select='title';  // 只选择 'title' 列 
$criteria->condition='postID=:postID'; 
$criteria->params=array(':postID'=>10); 
$post=Post::model()->find($criteria);

Une alternative à CDbCriteria consiste à passer un tableau à la méthode find. Les clés et valeurs du tableau correspondent respectivement aux noms d'attributs et aux valeurs des critères. L'exemple ci-dessus peut être réécrit comme suit :

$post=Post::model()->find(array( 
    'select'=>'title', 
    'condition'=>'postID=:postID', 
    'params'=>array(':postID'=>10), 
));

Quand une condition de requête consiste à faire correspondre plusieurs colonnes par un. valeur spécifiée, nous pouvons utiliser findByAttributes(). Nous faisons du paramètre $attributes un tableau de valeurs indexées par noms de colonnes.

Dans certains frameworks, cette tâche peut être réalisée en appelant une méthode comme findByNameAndTitle. Bien que cette approche semble tentante, elle entraîne souvent de la confusion, des conflits et des problèmes tels que la sensibilité à la casse des noms de colonnes.

3. Méthode Query Builder

Le code est le suivant :

$user = Yii::app()->db->createCommand() 
    ->select('id, username, profile') 
    ->from('tbl_user u') 
    ->join('tbl_profile p', 'u.id=p.user_id') 
    ->where('id=:id', array(':id'=>$id)) 
    ->queryRow();

Si vous souhaitez en savoir plus sur le contenu lié à la programmation, veuillez faire attention à php Site Web chinois Tutoriel de programmation colonne !

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