Maison > cadre php > PensezPHP > Comment thinkphp interroge la base de données

Comment thinkphp interroge la base de données

藏色散人
Libérer: 2019-08-23 13:30:19
original
5691 Les gens l'ont consulté

Comment thinkphp interroge la base de données

Comment thinkphp interroge-t-il la base de données ?

Requête de base de données

ThinkPHP intègre des méthodes de requête très flexibles, qui peuvent effectuer rapidement des opérations de requête de données.

Les conditions de requête peuvent être utilisées pour toute opération telle que CURD et peuvent être transmises en tant que paramètres de la méthode Where.

ThinkPHP peut prendre en charge l'utilisation directe de chaînes comme conditions de requête, mais dans la plupart des cas, il est recommandé d'utiliser des tableaux d'index ou des objets comme conditions de requête car c'est plus sûr.

Méthode de requête

1. Utiliser des chaînes comme conditions de requête

C'est la méthode la plus traditionnelle, mais elle est plus sûre. Pas élevé, par exemple :

$User = M("User"); // 实例化User对象
$User->where('type=1 AND status=1')->select();
Copier après la connexion

La dernière instruction SQL générée est

SELECT * FROM think_user WHERE type=1 AND status=1
Copier après la connexion

2. Utiliser des tableaux comme conditions de requête

$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['status'] = 1;
 // 把查询条件传入查询方法
$User->where($condition)->select();
Copier après la connexion

Le dernier SQL généré instruction Yes

SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1
Copier après la connexion

Si vous effectuez une requête multi-champs, la relation logique par défaut entre les champs est ET logique, mais le jugement logique par défaut peut être modifié à l'aide des règles suivantes, en utilisant _logic pour définir la logique de la requête :

$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR'; //定义查询逻辑
 // 把查询条件传入查询方法
$User->where($condition)->select();
Copier après la connexion

L'instruction SQL finale générée est

SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'
Copier après la connexion

3. Utilisez la méthode objet pour interroger (ici, prenez l'objet intégré stdClass comme exemple. )

$User = M("User"); // 实例化User对象
 // 定义查询条件
$condition = new stdClass(); 
$condition->name = 'thinkphp'; 
$condition->status= 1; 
$User->where($condition)->select();
Copier après la connexion

L'instruction SQL finale générée est la même que ci-dessus

SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
Copier après la connexion

L'effet de l'utilisation de la requête en mode objet et de l'utilisation de la requête tableau est le même et interchangeable Dans la plupart des cas, nous. Nous recommandons d'utiliser le mode tableau pour être plus efficace. Nous utiliserons plus tard la méthode tableau comme exemple pour expliquer l'utilisation spécifique du langage de requête.

Requête d'expression

La condition de requête ci-dessus n'est qu'un simple jugement d'égalité. Les expressions de requête peuvent être utilisées pour prendre en charge davantage de syntaxe de requête SQL et peuvent être utilisées dans un tableau ou dans une requête. En mode objet (seul le mode tableau est utilisé comme exemple ci-dessous), le format de l'expression de requête est :

$map['字段名'] = array('表达式','查询条件');
Copier après la connexion

L'expression n'est pas sensible à la casse. Les expressions de requête prises en charge sont respectivement les suivantes : <. 🎜>

Comment thinkphp interroge la base de données

$map[&#39;id&#39;]  = array(&#39;eq&#39;,100);  id = 100;
 $map[&#39;id&#39;]  = array(&#39;egt&#39;,100);id >= 100
 $map[&#39;name&#39;] = array(&#39;like&#39;,&#39;thinkphp%&#39;); name like &#39;thinkphp%&#39; 模糊查询
 $map[&#39;a&#39;] =array(&#39;like&#39;,array(&#39;%thinkphp%&#39;,&#39;%tp&#39;),&#39;OR&#39;);$map[&#39;b&#39;] =array(&#39;notlike&#39;,array(&#39;%thinkphp%&#39;,&#39;%tp&#39;),&#39;AND&#39;); (a like &#39;%thinkphp%&#39; OR a like &#39;%tp&#39;) AND (b not like &#39;%thinkphp%&#39; AND b not like &#39;%tp&#39;)
Copier après la connexion
Cet article provient de la colonne d'articles techniques du framework ThinkPHP :

http://www.php.cn/phpkj/thinkphp /

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