Comment implémenter thinkphp pour exécuter des instructions SQL natives

黄舟
Libérer: 2023-03-16 19:14:01
original
1675 Les gens l'ont consulté

Comment exécuter des instructions SQL natives dans thinkphp ?


$Model = new Model();//或者 $Model = D(); 或者 $Model = M();
$sql = "select * from `order`";
$voList = $Model->query($sql);
Copier après la connexion

Juste besoin de new pour hériter des méthodes de Model à partir d'un modèle vide.

Remarquequery est la fonction de requête, exécuter est la fonction d'ajout, de suppression et de modification

Instances d'interrogation et de lecture des valeurs d'attribut :


$sql = "select * from goods";
$Model = M();
$result = $Model->query($sql);
foreach ($result as $k=>$val){
$goods_id = $val["goods_id"];
}
Copier après la connexion

Le modèle de tP peut prendre en charge les opérations SQL natives et fournit deux méthodes : interroger et exécuter. Pourquoi le SQL natif fait-il la distinction entre deux méthodes :

1. Différents types de retour

la requête est utilisée pour interroger , et renvoie l'ensemble de données , qui est le même que select ou findall, afin qu'il puisse utiliser la balise volist directement dans le modèle pour afficher les résultats de la requête

execute est utilisé pour les opérations d'écriture , renvoie l'état ou le nombre d'enregistrements concernés

2. Des statistiques de lecture et d'écriture sont nécessaires

Afin de faciliter les statistiques du nombre actuel de lectures et d'écritures de données, les opérations de lecture et d'écriture de la base de données sont séparés (correspondant à l'interrogation et à l'exécution)

L'utilisation du SQL natif est très simple, nous n'avons même pas besoin d'instancier de modèles, par exemple :


$Model = new Model(); // 实例化一个空模型
Copier après la connexion

Les méthodes suivantes sont équivalentes


$Model = D();// 或者 $Model = M();
// 下面执行原生SQL操作
$Model->query('select * from think_user where status=1');
$Model->execute('update think_user set status=1 where id=1');
Copier après la connexion

Si vous instanciez un modèle, vous pouvez toujours effectuer des opérations SQL natives sans être affecté, par exemple :


$User = D('User');
$User->query('select * from think_user where status=1');
$User->execute('update think_user set status=1 where id=1');
Copier après la connexion

Dans ce cas, on peut simplifier l'écriture des instructions SQL, par exemple :


$User->query('select * from __TABLE__ where status=1');
$User->execute('update __TABLE__ set status=1 where id=1');
Copier après la connexion

Le Le système remplacera automatiquement __TABLE__ par le nom actuel de la table de données correspondant au modèle. La table de données réelle est déterminée par le modèle.

De manière générale, nous utilisons des opérations SQL natives pour implémenter certaines opérations difficiles à mettre en œuvre avec ORM et CURD De plus, si le SQL n'est pas complexe, l'efficacité et. cohérence du SQL natif La différence d'efficacité opérationnelle est minime et l'implémentation ORM de TP elle-même est également assez efficace.

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!

É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