Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Php Sql Parser

Php Sql Parser Laravel Package

greenlion/php-sql-parser

View on GitHub
Deep Wiki
Context7

A pure PHP SQL (non validating) parser w/ focus on MySQL dialect of SQL

Frequently asked questions about Php Sql Parser
How do I install greenlion/php-sql-parser in a Laravel project?
Install it with Composer using composer require greenlion/php-sql-parser. The package has no native Laravel service provider or facade, so you instantiate the parser directly or bind it in a custom service provider. Composer autoloading makes the parser class available once installed.
Does greenlion/php-sql-parser work with Laravel 10 and PHP 8.1+?
The package supports PHP 7.4 and newer and is pure PHP with no external dependencies, so it can run under Laravel 9+ on PHP 8.1+. Because Laravel 9+ requires PHP 8.1+, test for deprecation warnings in your application. There is no framework lock-in, so integration is mostly manual.
Can I use greenlion/php-sql-parser to parse Eloquent whereRaw queries?
Yes, you can pass raw SQL strings from whereRaw or DB::select into the parser for analysis or rewriting. It does not hook into Eloquent automatically, so you must extract the SQL yourself. This is useful for query inspection and transformation, but benchmark it before using it on every request.
Is greenlion/php-sql-parser a SQL validator?
No, it is a non-validating parser that expects syntactically valid queries and focuses on structuring MySQL SQL. It is intended for parsing, analysis, and transformation rather than syntax validation. Use a separate validation or linting tool if you need to reject invalid SQL before execution.
How can I use PHP-SQL-Parser for SQL injection detection in Laravel?
You can parse user-supplied SQL and inspect the resulting structure or tokens for suspicious patterns, especially in admin SQL consoles or logging tools. It should not replace parameterized queries, Eloquent bindings, or Laravel's query builder protections. Treat parsing as defense-in-depth and account for false positives and false negatives.
Does greenlion/php-sql-parser support PostgreSQL or SQLite?
The package is focused on the MySQL dialect, which is close to SQL-92, and you can adjust reserved words for other dialects. It is not a dialect-agnostic parser, so PostgreSQL or SQLite-specific syntax may not parse correctly. For multi-database Laravel applications, evaluate alternatives or test dialect quirks carefully.
What SQL statements does greenlion/php-sql-parser fully support?
It provides full MySQL dialect support for SELECT, INSERT, UPDATE, DELETE, REPLACE, RENAME, SHOW, SET, DROP, CREATE INDEX, CREATE TABLE, EXPLAIN, and DESCRIBE. Other statement types are returned as arrays of tokens rather than fully structured output. It also supports UNION, subqueries, and compound statements.
Is greenlion/php-sql-parser fast enough for production Laravel request handling?
The package's focus is accurate MySQL parsing, not performance optimization, so runtime parsing can add overhead in high-throughput paths. Benchmark it against your API request handling before enabling it globally. For analytics or logging, consider deferring parsing asynchronously or caching parsed query templates.
What are alternatives to greenlion/php-sql-parser for Laravel?
Alternatives include doctrine/dbal, which includes SQL parsing capabilities, paragonie/sqlparser, and sql-parser-php. Compare dialect support, maintenance activity, and feature parity before choosing one. Laravel's query builder is for building queries, not parsing arbitrary SQL, so it solves a different problem.
Is greenlion/php-sql-parser actively maintained and safe to depend on?
The package had a release in 2024, but it is a focused pure PHP library with no external dependencies, which lowers compatibility risk. Monitor its repository for updates or forks and pin a tested version in composer.json. Run tests against your Laravel and PHP versions before relying on it in production.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
roundly-consulting/kubernetes-api-for-laravel
roundly-consulting/plausible-for-laravel
gvp/gvp-laravel-template
metasyncsite/laravel-metasync-client
roundly-consulting/onboarding-for-laravel
andydefer/laravel-notification
adachsoft/cli-process-tester
jhaskell13/laraflow
sebastienheyd/boilerplate-media-manager
ccast/tagixo-primix
pretendtrue/laravel-builder
sawmainek/laravel-scout-tntsearch-driver
tomshaw/laravel-calendar-table
dibakar/laravel-ownership
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo