Formater et mettre en surbrillance les instructions SQL en PHP

藏色散人
Libérer: 2023-04-07 11:52:02
avant
3276 Les gens l'ont consulté

Formater et mettre en surbrillance les instructions SQL en PHP

jdorn/sql-formatter est une classe PHP légère pour formater les instructions SQL.

Il prend en charge l'indentation automatique, l'ajout de sauts de ligne et même la coloration syntaxique.

Utilisé dans la ligne de commande

Le package d'extension contient un fichier exécutable bin/sql-formatter qui peut être utilisé directement pour le formatage de la ligne de commande SQL.

Vous pouvez utiliser cette commande après avoir installé Composer globalement :

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

Utilisé comme package d'extension

La classe SqlFormatter contient une méthode de format nommée statique, qui peut recevoir une chaîne d'instruction SQL en tant que paramètre et renvoyer du code HTML formaté enveloppé dans des balises pre.

Par exemple :

<?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);
Copier après la connexion

Sortie :

Formater et mettre en surbrillance les instructions SQL en PHP

Formatage uniquement sans surbrillance

Si vous n'avez pas besoin de surbrillance et vous n'avez besoin que d'ajouter une indentation et des sauts de ligne, veuillez définir le deuxième paramètre sur false.

Convient à la sortie de journaux d'erreurs ou d'autres données non HTML.

<?php
echo SqlFormatter::format($query, false);
Copier après la connexion

Sortie :

Formater et mettre en surbrillance les instructions SQL en PHP

Sélectionner uniquement sans formatage

Il existe une méthode distincte nommée Highlight, elle peut garantir que le format d'origine n'est pas modifié et que seule la coloration syntaxique est ajoutée.

convient lorsque le SQL a été bien formaté et doit être rendu plus lisible.

Formater et mettre en surbrillance les instructions SQL en PHP

Compresser l'instruction de requête

La méthode compress peut supprimer tous les commentaires SQL et compresser les espaces inutiles.

convient pour générer plusieurs instructions de requête et faciliter le copier-coller dans la ligne de commande.

-- 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);
Copier après la connexion

Sortie :

SELECT Id as temp, DateCreated as Created FROM MyTable;
Copier après la connexion

Supprimer les commentaires

Si vous devez conserver le format d'origine mais que vous devez quand même supprimer les commentaires SQL, vous pouvez utiliser la méthode RemoveComments pour remplacer compress.

-- 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);
Copier après la connexion

Sortie :

    SELECT
    Id 
    as temp, DateCreated as Created FROM MyTable;
Copier après la connexion

Diviser plusieurs instructions SQL en tableaux

Il existe également une fonctionnalité indépendante du format qui peut diviser plusieurs instructions SQL en tableaux Les instructions SQL sont séparées en tableaux.

Par exemple :

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);
Copier après la connexion

Résultat :

DROP TABLE IF EXISTS MyTable;
CREATE TABLE MyTable ( id int );
INSERT INTO MyTable (id) VALUES (1),(2),(3),(4);
SELECT * FROM MyTable;
Copier après la connexion

Pourquoi ne pas utiliser des expressions régulières ?

Allez lire le README~https://github.com/jdorn/sql-formatter#why....

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:learnku.com
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