Maison >développement back-end >tutoriel php >Comment exécuter des instructions SQL natives dans le framework thinkPHP

Comment exécuter des instructions SQL natives dans le framework thinkPHP

不言
不言original
2018-06-07 17:38:357671parcourir

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!

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