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

Comment thinkphp interroge la base de données

藏色散人
藏色散人original
2019-08-23 13:29:445677parcourir

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

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

SELECT * FROM think_user WHERE type=1 AND status=1

2. Utiliser des tableaux comme conditions de requête

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

Le dernier SQL généré instruction Yes

SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1

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

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

SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'

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

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

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('表达式','查询条件');

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

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!

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