sql parser
5.10.2
การตรวจสอบความถูกต้องของ lexer และ parser ของ SQL โดยเน้นที่ภาษาถิ่นของ MySQL
กรุณาใช้ Composer เพื่อติดตั้ง:
composer require phpmyadmin/sql-parser
เอกสาร API มีอยู่ที่ https://develdocs.phpmyadmin.net/sql-parser/
ยูทิลิตี้บรรทัดคำสั่งเพื่อเน้นไวยากรณ์แบบสอบถาม SQL:
./vendor/bin/sql-parser --highlight --query " SELECT 1 "
ยูทิลิตี้บรรทัดคำสั่งเพื่อสอบถาม SQL SQL:
./vendor/bin/sql-parser --lint --query " SELECT 1 "
ยูทิลิตี้บรรทัดคำสั่งเพื่อสร้างโทเค็นการสืบค้น SQL:
./vendor/bin/sql-parser --tokenize --query " SELECT 1 "
คำสั่งทั้งหมดสามารถแยกวิเคราะห์อินพุตจาก stdin (มาตรฐานใน) เช่น:
echo " SELECT 1 " | ./vendor/bin/sql-parser --highlight
cat example.sql | ./vendor/bin/sql-parser --lint
echo PhpMyAdmin SqlParser Utils Formatter:: format ( $ query , [ ' type ' => ' html ' ]);
use PhpMyAdmin SqlParser Parser ;
use PhpMyAdmin SqlParser Utils Query ;
$ query = ' OPTIMIZE TABLE tbl ' ;
$ parser = new Parser ( $ query );
$ flags = Query:: getFlags ( $ parser -> statements [ 0 ]);
echo $ flags -> queryType ?->value;
require __DIR__ . ' /vendor/autoload.php ' ;
$ query1 = ' select * from a ' ;
$ parser = new PhpMyAdmin SqlParser Parser ( $ query1 );
// inspect query
var_dump ( $ parser -> statements [ 0 ]); // outputs object(PhpMyAdminSqlParserStatementsSelectStatement)
// modify query by replacing table a with table b
$ table2 = new PhpMyAdmin SqlParser Components Expression ( '' , ' b ' , '' , '' );
$ parser -> statements [ 0 ]-> from [ 0 ] = $ table2 ;
// build query again from an array of object(PhpMyAdminSqlParserStatementsSelectStatement) to a string
$ statement = $ parser -> statements [ 0 ];
$ query2 = $ statement -> build ();
var_dump ( $ query2 ); // outputs string(19) 'SELECT * FROM `b` '
// Change SQL mode
PhpMyAdmin SqlParser Context:: setMode ( PhpMyAdmin SqlParser Context:: SQL_MODE_ANSI_QUOTES );
// build the query again using different quotes
$ query2 = $ statement -> build ();
var_dump ( $ query2 ); // outputs string(19) 'SELECT * FROM "b" '
คุณสามารถแปลข้อความแสดงข้อผิดพลาดที่ติดตั้ง phpmyadmin/motranslator
เวอร์ชัน 5.0
หรือใหม่กว่าได้:
composer require phpmyadmin/motranslator:^5.0
สถานที่นั้นจะถูกตรวจพบโดยอัตโนมัติจากสภาพแวดล้อมของคุณ คุณยังสามารถตั้งค่าสถานที่อื่นได้อีกด้วย
จากคลิ :
LC_ALL=pl ./vendor/bin/sql-parser --lint --query " SELECT 1 "
จาก php :
require __DIR__ . ' /vendor/autoload.php ' ;
PhpMyAdmin SqlParser Translator:: setLocale ( ' pl ' );
$ query1 = ' select * from a ' ;
$ parser = new PhpMyAdmin SqlParser Parser ( $ query1 );
ไลบรารีนี้ถูกสร้างขึ้นครั้งแรกในช่วง Google Summer of Code 2015 และถูกใช้โดย phpMyAdmin ตั้งแต่เวอร์ชัน 4.5