Maison > développement back-end > tutoriel php > Framework de développement PHP Tutoriel Yii Framework (25) Exemple de générateur de requêtes de base de données

Framework de développement PHP Tutoriel Yii Framework (25) Exemple de générateur de requêtes de base de données

黄舟
Libérer: 2023-03-05 09:04:02
original
1353 Les gens l'ont consulté

L'article précédent a présenté comment PHP utilise DAO (Database Access Object Interface) pour accéder à la base de données. L'utilisation de DAO nécessite que les programmeurs écrivent des instructions SQL complexes, Yii fournit Query Builder pour aider les programmeurs à générer des instructions SQL. fournit une méthode orientée objet pour créer dynamiquement des instructions SQL. Pour faire une comparaison inappropriée, les interfaces DAO de PHP et .Net sont très similaires. Elles ressemblent un peu à LINQ, bien qu'elles aient beaucoup de fonctions plus petites. Pour certaines requêtes SQL simples, il n'est généralement pas nécessaire de recourir au Générateur de requêtes, comme par exemple l'interrogation de la table Employee dans l'article précédent.

Par rapport à l'utilisation directe d'instructions SQL, l'utilisation de Query Builder présente les avantages suivants :

Prend en charge la création dynamique de requêtes SQL plus complexes via des programmes.

Ajoutez automatiquement des guillemets aux noms de tables et aux listes dans les instructions SQL créées pour éviter les conflits avec les identifiants SQL réservés.

Spécifiez d'ajouter des guillemets pour les paramètres et d'utiliser la liaison de paramètres autant que possible pour réduire le risque d'injection SQL.

L'utilisation de Query Builder n'écrit pas directement d'instructions SQL, mais fournit un certain degré d'abstraction de base de données, ce qui facilite le changement de type de base de données.

Cet exemple interroge les deux tables Customer et Employee de Chinook, et interroge les informations de contact de tous les clients gérés par EmployeeId=4.

Si vous utilisez une requête SQL, vous pouvez écrire :

SELECT c.FirstName, c.LastName , c.Address,c.Email。
FROM customer c
INNER JOIN
employee e
ON c.SupportRepId=e.EmployeeId
Copier après la connexion

WHERE e.EmployeeId=4 Cet exemple utilise Query Builder pour créer une requête SQL et modifier la méthode indexAction de SiteController :

public function actionIndex()
{
$model = array();
$connection=Yii::app()->db;
$command=$connection->createCommand()
->select('c.FirstName, c.LastName, c.Address,c.Email')
->from('customer c')
->join('employee e','c.SupportRepId=e.EmployeeId')
->where('e.EmployeeId=4');
$dataReader=$command->query();
// each $row is an array representing a row of data
foreach($dataReader as $row)
{
$customer= new DataModel();
$customer->firstName=$row['FirstName'];
$customer->lastName=$row['LastName'];
$customer->address=$row['Address'];
$customer->email=$row['Email'];
$model[]=$customer;
}
$this->render('index', array(
'model' => $model,
));
}
Copier après la connexion

Vous pouvez voir que Query Builder utilise également CDbCommand. CDbCommand fournit les méthodes suivantes pour interroger les données :

select()
selectDistinct()
from()
where()
join()
leftJoin()
rightJoin()
crossJoin()
naturalJoin()
group()
having()
order()
limit()
offset()
union()
Copier après la connexion

De plus, vous pouvez voir la méthode de définition des données :

createTable()
renameTable()
dropTable()
truncateTable()
addColumn()
renameColumn()
alterColumn()
dropColumn()是
createIndex()
dropIndex()
Copier après la connexion

Les méthodes prises en charge par CDbCommand correspondent essentiellement aux mots-clés de l'instruction SQL un à un, il s'agit donc de préférences personnelles sans utiliser Query Builder. Vous pouvez utiliser des instructions SQL directement pour du SQL simple. et vous pouvez utiliser Query Builder pour des requêtes plus complexes.

Cet exemple montre les résultats :

Framework de développement PHP Tutoriel Yii Framework (25) Exemple de générateur de requêtes de base de données

Ce qui précède est le contenu du tutoriel du framework de développement PHP Yii Framework (25) exemple de générateur de requêtes de base de données pour. pour plus de contenu connexe, veuillez suivre le site Web PHP chinois (www.php.cn) !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal