Introduction aux types de méthodes d'implémentation de requête PHP et comment implémenter une requête dans thinkphp

伊谢尔伦
Libérer: 2023-03-14 06:10:01
original
2274 Les gens l'ont consulté

La fonction de requête est souvent utilisée dans le développement quotidien. Aujourd'hui, notre site Web PHP chinois vous guidera à travers la méthode d'implémentation de la fonction de requête et vous présentera brièvement comment utiliser la fonction de requête dans thinkphp.

Mode de correspondance SQL

1 Lorsque vous utilisez le mode de correspondance SQL, vous ne pouvez pas utiliser l'opérateur = ou ! =, utilisez plutôt l'opérateur LIKE ou NOT LIKE ;

2. En utilisant le mode de correspondance SQL, MYSQL fournit 2 types de caractères génériques .

% représente n'importe quel nombre de caractères (y compris 0)

_ représente n'importe quel caractère unique

3. Utilisez le mode de correspondance SQL, si le format de correspondance ne contient pas ce qui précède. L'effet de requête de l'un des deux caractères génériques est équivalent à = ou ! =

4. Utiliser le modèle de correspondance SQL, lors de la correspondance, insensible à la casse

#查询用户名以某个字符开头的用户
#查询用户名以字符'l'开头的用户: l%
SELECT * FROM user WHERE username LIKE 'l%';
#查询用户名以某个字符结尾的用户
#查询用户名以字符'e'结尾的用户:e%
SELECT * FROM user WHERE username LIKE 'e%';
#查询用户名包含某个字符的用户
#查询用户名包含字符'o'的用户:%o%
SELECT * FROM user WHERE username LIKE '%o%';
#查询包含三个字符的用户
SELECT * FROM user WHERE username LIKE '_';
#查询用户名第二个字符为o的用户:_o%
SELECT * FROM user WHERE username LIKE '_o%';
Copier après la connexion

expression régulière modèle de correspondance

Caractère générique (expression régulière)

Correspond à n'importe quel caractère

* Correspond à 0 caractère ou plus avant

x* signifie correspondre à n'importe quel nombre de. x caractères

[..] Correspond à n'importe quel caractère entre crochets
[abc] Correspond à le caractère ab ou c
[a-z] Correspond à n'importe quelle lettre
[0-9] Correspond à n'importe quel nombre
[0-9]* Correspond à n'importe quel nombre de n'importe quel nombre
[a-z]* Correspond à n'importe quel nombre de lettres

^ représente un certain caractère ou Chaîne commence

^a signifie qu'il commence par la lettre a

$ signifie qu'il se termine par un certain caractère ou une certaine chaîne

s$ signifie qu'il se termine par la lettre s

Le les opérateurs utilisés pour faire correspondre les modèles à l'aide d'expressions régulières sont :

REGEXP ou NOT REGEXP (RLIKE ou NOT RLIKE)

Remarque : les modèles de correspondance d'expressions régulières, leurs expressions régulières. Si la formule apparaît n'importe où dans la correspondance champ, le motif de

sera mis en correspondance. Il n'est pas nécessaire de mettre un caractère générique des deux côtés pour le faire correspondre

Si seul le caractère générique est utilisé pour correspondre, supposez N ; , alors son modèle de correspondance indique qu'il est supérieur ou égal à N

Comment comprendre la phrase ci-dessus ?

signifie

... Correspond aux données supérieures ou égales à 3 caractères
.... Correspond aux données supérieures ou égales à 4 caractères
# Requête le nom d'utilisateur avec le caractère l Utilisateurs commençant par : ^l;
#Écriture d'expression régulière

SELECT * FROM user WHERE username REGEXP '^l';
#sql匹配模式写法:
SELECT * FROM user WHERE username LIKE 'l%';
#查询用户名正好是三个字符的用户:^...$;
#sql匹配模式写法:
SELECT * FROM user WHERE username LIKE '_';
#正则表达式写法
SELECT * FROM user WHERE username REGEXP '^...$';
Copier après la connexion

thinkphp comme requête floue

Utilise actuellement thinkframework phpDe plus en plus de personnes développent des projets En raison de sa bonne encapsulation, de nombreuses parties du développement PHP pur ne sont pas faciles à démarrer. Cet article utilise une requête floue comme 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 :

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

La dernière. généré L'instruction SQL est

SELECT * FROM think_user WHERE type=1 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 ET logique, mais le jugement logique par défaut peut être modifié en utilisant les 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

2. Le mode tableau comme condition de requête

Cela dit, comment implémentez une requête similaire, comme suit Regardez

$userForm=M('user'); 
$where['name']=array('like','php%');
$userForm->where($where)->select();
Copier après la connexion

et la requête similaire ici est :

name like 'php%'
Copier après la connexion

Instruction de requête :

$where['name']=array('like',array('%php%','%.com'),'OR');
Copier après la connexion

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!