Cet article présente principalement la méthode d'exécution d'instructions SQL natives dans le framework thinkPHP. Il analyse les compétences opérationnelles associées à l'exécution d'instructions SQL natives dans thinkPHP sous forme d'exemples et analyse brièvement la différence entre les méthodes de requête et d'exécution. Amis qui en ont besoin Vous pouvez vous référer à l'exemple
dans cet article pour décrire la méthode d'exécution des instructions SQL natives dans le framework thinkPHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Comment exécuter des instructions SQL natives dans thinkphp ?
$Model = new Model();//或者 $Model = D(); 或者 $Model = M(); $sql = "select * from `order`"; $voList = $Model->query($sql);
Il suffit de créer un modèle vide pour hériter des méthodes de Model.
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"]; }
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. Une requête
différente est utilisée pour interroger , renvoie l'ensemble de données , de la même manière que select ou findall, vous pouvez donc utiliser la balise volist directement dans le modèle pour afficher la requête Les résultats de la requête de
execute sont utilisés pour les opérations d'écriture , renvoie l'état ou le nombre d'enregistrements concernés
2. Statistiques de lecture et d'écriture Besoin
Afin de faciliter les statistiques du nombre actuel de lectures et d'écritures de données, séparer les opérations de lecture et d'écriture de la base de données (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 un modèle, par exemple :
$Model = new Model(); // 实例化一个空模型
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');
Si vous instanciez un modèle, vous pouvez toujours effectuer des opérations SQL natives, ne seront pas affectés, 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');
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');
Le système mettra automatiquement __TABLE__Remplacer par le nom de la table de données correspondant au modèle actuel. 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 représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Le framework ThinkPHP5 implémente simplement les requêtes par lots
Le framework ThinkPHP3.2 utilise addAll() pour l'insertion par lots Méthode de données
Méthode thinkPHP5 d'ajout de contenu à la 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!