Einführung in die Arten von Implementierungsmethoden von PHP-Abfragen und wie Abfragen in thinkphp implementiert werden

伊谢尔伦
Freigeben: 2023-03-14 06:10:01
Original
2289 Leute haben es durchsucht

Die Abfragefunktion wird häufig in der täglichen Entwicklung verwendet. Heute führt Sie unsere chinesische PHP-Website durch die Implementierungsmethode der Abfragefunktion und stellt Ihnen kurz vor, wie Sie die Abfragefunktion in thinkphp verwenden.

SQL-Matching-Modus

1 Wenn Sie den SQL-Matching-Modus verwenden, können Sie den -Operator = oder verwenden! =, verwenden Sie stattdessen den Operator LIKE oder NOT LIKE; 2. Im SQL-Matching-Modus stellt MYSQL zwei Arten von

Platzhalterzeichen

bereit. % stellt eine beliebige Anzahl beliebiger Zeichen dar (einschließlich 0)

_ stellt ein beliebiges einzelnes Zeichen dar

3 Verwenden Sie den SQL-Matching-Modus, wenn das Matching-Format das oben Genannte nicht enthält Der Abfrageeffekt eines der beiden Platzhalterzeichen entspricht = oder! =

4. Verwenden Sie beim Vergleich das SQL-Übereinstimmungsmuster, ohne Berücksichtigung der Groß- und Kleinschreibung

#查询用户名以某个字符开头的用户
#查询用户名以字符'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%';
Nach dem Login kopieren

regulärer Ausdruck Übereinstimmungsmuster Platzhalter (regulärer Ausdruck)

Entspricht einem beliebigen einzelnen Zeichen

* Entspricht 0 oder mehr Zeichen davor

x* bedeutet Übereinstimmung mit einer beliebigen Anzahl von x Zeichen

[..] Entspricht einem beliebigen Zeichen in Klammern

[abc] Entspricht dem Zeichen ab oder c

[a-z] Entspricht einem beliebigen Buchstaben
[0-9] Entspricht einer beliebigen Zahl
[0-9]* Entspricht einer beliebigen Zahl einer beliebigen Zahl
[a-z]* Entspricht einer beliebigen Anzahl von Buchstaben

^ steht für ein bestimmtes Zeichen oder

String

beginnt ^a bedeutet, dass es mit dem Buchstaben a beginnt

$ bedeutet, dass es mit einem bestimmten Zeichen oder einer bestimmten Zeichenfolge endet

s$ bedeutet, dass es mit dem Buchstaben s endet

Die Operatoren Zum Abgleichen von Mustern mithilfe regulärer Ausdrücke werden verwendet:

REGEXP oder NOT REGEXP (RLIKE oder NOT RLIKE)

Hinweis: Vergleichsmuster für reguläre Ausdrücke, ihre regulären Ausdrücke Wenn die Formel irgendwo im Abgleichsfeld erscheint , das Muster von

wird abgeglichen. Es ist nicht erforderlich, auf beiden Seiten ein Platzhalterzeichen einzufügen, um eine Übereinstimmung zu erzielen. dann zeigt sein Übereinstimmungsmuster an, dass es größer oder gleich N ist;

Wie ist der obige Satz zu verstehen?

bedeutet

... Entspricht Daten, die größer oder gleich 3 Zeichen sind

.... Entspricht Daten, die größer oder gleich 4 Zeichen sind

# Abfrage der Benutzername mit dem Zeichen l Benutzer beginnend mit: ^l;

#Reguläre Ausdrücke schreiben




thinkphp wie Fuzzy-Abfrage

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 '^...$';
Nach dem Login kopieren

Verwende derzeit thinkPHP-FrameworkAufgrund der guten Kapselung sind viele Teile der reinen PHP-Entwicklung nicht einfach zu starten. In diesem Artikel wird die Fuzzy-Abfrage als Beispiel verwendet.

Hier verwenden wir hauptsächlich Beispiele, um die Verwendung zu veranschaulichen: ThinkPHP kann die direkte Verwendung von Zeichenfolgen als Abfragebedingungen unterstützen, in den meisten Fällen wird jedoch empfohlen, Indexarrays oder Objekte als Abfragebedingungen zu verwenden. weil es sicherer ist.

1. Verwenden Sie Zeichenfolgen als Abfragebedingungen

Dies ist der traditionellste Weg, aber nicht sehr sicher

Zum Beispiel:

Der letzte generiert Die SQL-Anweisung lautet

$User = M("User"); // 实例化User对象
$User->where('type=1 AND status=1')->select();
Nach dem Login kopieren
Wenn Sie eine Abfrage mit mehreren Feldern durchführen, ist die standardmäßige logische Beziehung zwischen Feldern logisch UND UND, aber die standardmäßige logische Beurteilung kann mithilfe der folgenden Regeln geändert werden, indem _logic verwendet wird So definieren Sie die Abfragelogik:

SELECT * FROM think_user WHERE type=1 AND status=1
Nach dem Login kopieren
Die endgültige generierte SQL-Anweisung lautet

$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR';
// 把查询条件传入查询方法
$User->where($condition)->select();
Nach dem Login kopieren
2. Array-Modus als Abfragebedingung

So viel gesagt, wie geht das? Implementieren Sie eine ähnliche Abfrage wie folgt. Sehen Sie sich
SELECT * FROM think_user WHERE `name`='thinkphp' OR `account`='thinkphp'
Nach dem Login kopieren

an. Die ähnliche Abfrage lautet hier:

$userForm=M('user'); 
$where['name']=array('like','php%');
$userForm->where($where)->select();
Nach dem Login kopieren
Abfrageanweisung:

Das obige ist der detaillierte Inhalt vonEinführung in die Arten von Implementierungsmethoden von PHP-Abfragen und wie Abfragen in thinkphp implementiert werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage