Maison > Article > développement back-end > 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 语句
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('SqlFormatter.php'); $query = "SELECT count(*),`Column1`,`Testing`, `Testing Three` FROM `Table1` WHERE Column1 = 'testing' AND ( (`Column2` = `Column3` OR Column4 >= NOW()) ) GROUP BY Column1 ORDER BY Column3 DESC LIMIT 5,10"; echo SqlFormatter::format($query);
Sortie :
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);
Sortie :
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.
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);
Sortie :
SELECT Id as temp, DateCreated as Created FROM MyTable;
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);
Sortie :
SELECT Id as temp, DateCreated as Created FROM MyTable;
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);
Résultat :
DROP TABLE IF EXISTS MyTable; CREATE TABLE MyTable ( id int ); INSERT INTO MyTable (id) VALUES (1),(2),(3),(4); SELECT * FROM MyTable;
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!