Maison >développement back-end >tutoriel php >Comment implémenter thinkphp pour exécuter des instructions SQL natives

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

黄舟
黄舟original
2017-10-26 09:29:471725parcourir

Comment exécuter des instructions SQL natives dans thinkphp ?


$Model = new Model();//或者 $Model = D(); 或者 $Model = M();
$sql = "select * from `order`";
$voList = $Model->query($sql);

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"];
}

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(); // 实例化一个空模型

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 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');

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 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!

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