sql parser
5.10.2
MySQL 방언에 중점을 둔 유효성 검사 SQL 어휘 분석기 및 파서입니다.
Composer를 사용하여 다음을 설치하십시오.
composer require phpmyadmin/sql-parser
API 문서는 https://develdocs.phpmyadmin.net/sql-parser/에서 확인할 수 있습니다.
구문 강조 SQL 쿼리에 대한 명령줄 유틸리티:
./vendor/bin/sql-parser --highlight --query " SELECT 1 "
SQL 쿼리를 Lint하는 명령줄 유틸리티:
./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
로케일은 사용자 환경에서 자동으로 감지되며, 다른 로케일을 설정할 수도 있습니다.
CLI에서 :
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 동안 생성되었으며 버전 4.5부터 phpMyAdmin에서 사용되었습니다.