Heim  >  Artikel  >  Backend-Entwicklung  >  Formatieren und markieren Sie SQL-Anweisungen in PHP

Formatieren und markieren Sie SQL-Anweisungen in PHP

藏色散人
藏色散人nach vorne
2019-09-07 11:13:093282Durchsuche

Formatieren und markieren Sie SQL-Anweisungen in PHP

jdorn/sql-formatter ist eine leichte PHP-Klasse zum Formatieren von SQL-Anweisungen.

Es unterstützt automatische Einrückung, Zeilenumbrüche und sogar Syntaxhervorhebung.

Wird in der Befehlszeile verwendet

Das Erweiterungspaket enthält eine ausführbare Datei bin/sql-formatter , die direkt für die Befehlszeilenformatierung verwendet werden kann SQL.

Sie können diesen Befehl nach der globalen Installation von Composer verwenden:

composer global require jdorn/sql-formatter
sql-formatter "SELECT SOME QUERY;" // 直接格式化
// 或
echo "SELECT SOME QUERY;" | sql-formatter // 使用管道,更适合较大量的 SQL 语句

Wird als Erweiterungspaket verwendet

Die SqlFormatter-Klasse enthält eine statische benannte Formatmethode. die eine SQL-Anweisungszeichenfolge als Parameter empfangen und formatierten HTML-Code zurückgeben kann, der in Pre-Tags eingeschlossen ist.

Zum Beispiel:

<?php
require_once(&#39;SqlFormatter.php&#39;);
$query = "SELECT count(*),`Column1`,`Testing`, `Testing Three` FROM `Table1`
    WHERE Column1 = &#39;testing&#39; AND ( (`Column2` = `Column3` OR Column4 >= NOW()) )
    GROUP BY Column1 ORDER BY Column3 DESC LIMIT 5,10";
echo SqlFormatter::format($query);

Ausgabe:

Formatieren und markieren Sie SQL-Anweisungen in PHP

Nur ​​Formatierung ohne Hervorhebung

Wenn Sie benötigen keine Hervorhebung und müssen nur Einrückungen und Zeilenumbrüche hinzufügen. Bitte setzen Sie den zweiten Parameter auf „false“.

eignet sich zur Ausgabe von Fehlerprotokollen oder anderen Nicht-HTML-Daten.

<?php
echo SqlFormatter::format($query, false);

Ausgabe:

Formatieren und markieren Sie SQL-Anweisungen in PHP

Nur ​​Hervorhebung ohne Formatierung

Es gibt eine separate Methode namens Hervorhebung Dies kann sichergestellt werden dass das ursprüngliche Format nicht geändert wird und nur Syntaxhervorhebung hinzugefügt wird.

eignet sich, wenn die SQL gut formatiert wurde und besser lesbar gemacht werden muss.

Formatieren und markieren Sie SQL-Anweisungen in PHP

Abfrageanweisung komprimieren

Die Komprimierungsmethode entfernt alle SQL-Kommentare und komprimiert unnötige Leerzeichen.

eignet sich zum Ausgeben mehrerer Abfrageanweisungen und zum einfachen Kopieren und Einfügen in die Befehlszeile.

-- This is a comment
    SELECT
    /* This is another comment
    On more than one line */
    Id #This is one final comment
    as temp, DateCreated as Created FROM MyTable;
echo SqlFormatter::compress($query);

Ausgabe:

SELECT Id as temp, DateCreated as Created FROM MyTable;

Kommentare entfernen

Wenn Sie das Originalformat beibehalten, aber dennoch die SQL-Kommentare entfernen müssen, können Sie Folgendes verwenden die Methode „removeComments“, um compress zu ersetzen.

-- This is a comment
    SELECT
    /* This is another comment
    On more than one line */
    Id #This is one final comment
    as temp, DateCreated as Created FROM MyTable;
echo SqlFormatter::removeComments($query);

Ausgabe:

    SELECT
    Id 
    as temp, DateCreated as Created FROM MyTable;

Mehrere SQL-Anweisungen in Arrays aufteilen

Es gibt auch eine formatunabhängige Funktion, die mehrere SQL-Anweisungen in Arrays aufteilen kann SQL-Anweisungen werden in Arrays unterteilt.

Zum Beispiel:

DROP TABLE IF EXISTS MyTable;
CREATE TABLE MyTable ( id int );
INSERT INTO MyTable (id)
    VALUES
    (1),(2),(3),(4);
SELECT * FROM MyTable;
$queries = SqlFormatter::splitQuery($sql);

Ergebnis:

DROP TABLE IF EXISTS MyTable;
CREATE TABLE MyTable ( id int );
INSERT INTO MyTable (id) VALUES (1),(2),(3),(4);
SELECT * FROM MyTable;

Warum nicht reguläre Ausdrücke verwenden?

Gehen Sie und lesen Sie die README~https://github.com/jdorn/sql-formatter#why....

Das obige ist der detaillierte Inhalt vonFormatieren und markieren Sie SQL-Anweisungen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen