Maison >développement back-end >tutoriel php >thinkphp implémente un exemple de requête floue
Cet article présente principalement l'implémentation de requêtes floues similaires dans thinkphp. Il utilise des exemples pour décrire la méthode d'implémentation de requêtes floues similaires sous forme de chaîne et de tableau comme conditions de requête. référez-vous à lui.
L'exemple dans cet article décrit comment thinkphp implémente une requête floue, et j'aimerais le partager avec vous pour votre référence. La méthode d'implémentation spécifique est la suivante :
Actuellement, de plus en plus de personnes utilisent le framework thinkphp pour le développement de projets. En raison de sa bonne encapsulation, de nombreuses parties du développement PHP pur ne sont pas faciles à démarrer. dans cet article sont flous avec comme Query est un exemple pour illustrer cela.
Ici, nous utilisons principalement des exemples pour illustrer l'utilisation :
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, parce que c'est plus sûr.
1. Utiliser des chaînes comme conditions de requête
C'est la manière la plus traditionnelle, mais elle n'est pas très sûre
Par exemple :
Copier le code. Le code est le suivant :
$User = M("User"); // 实例化User对象 $User->where('type=1 AND status=1')->select();
L'instruction SQL finale générée est
Copier le code Le code est le suivant :
SELECT * FROM think_user WHERE type=1 AND status=1
Si vous effectuez une requête sur plusieurs champs, alors 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 requête :
Copier le code Code comme suit :
$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
Copiez le code Le code est le suivant :
SELECT * FROM think_user WHERE `name`='thinkphp' OR `account`='thinkphp'
2. Le mode tableau comme condition de requête
Après avoir tant parlé de la façon d'implémenter une requête similaire, regardons
Copier le codeLe code est la suivante :
$userForm=M('user'); $where['name']=array('like','php%'); $userForm->where($where)->select();
La requête similaire ici est pour :
Copier le codeLe code est la suivante :
name like 'php%'
Requête déclaration :
Copier le codeLe code est le suivant :
$where['name']=array('like',array('%php%','%.com'),'OR');
La requête similaire ici est :
Copier le code Le code est le suivant :
name like '%php%' or name like '%.com'
Instruction de requête :
Copier le codeLe code est le suivant :
$where['name']=array(array('like','%a%'),array('like','%b%'),array('like','%c%'),'php','or');
Le j'aime la requête ici est :
Copier le codeLe code est le suivant :
(`name` LIKE '%a%') OR (`name` LIKE '%b%') OR (`name` LIKE '%c%') OR (`name` = 'php')
Instruction de requête :
Copier le code Le code est le suivant :
$where['_string']='(name like "%php%") OR (title like "%php")';
La requête J'aime ici est :
Copier le code Le code est le suivant :
name like '%jb51%' or title like '%php'
Recommandations associé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!