PHPackages                             mirakmalsulton/llmsql - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. mirakmalsulton/llmsql

ActiveLibrary[Database &amp; ORM](/categories/database)

mirakmalsulton/llmsql
=====================

Interface for interacting with SQL databases using LLM.

02PHP

Since Feb 8Pushed 3mo agoCompare

[ Source](https://github.com/mirakmalsulton/llmsql)[ Packagist](https://packagist.org/packages/mirakmalsulton/llmsql)[ RSS](/packages/mirakmalsulton-llmsql/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Example
---------------

[](#laravel-example)

Below is an example of how to implement a natural language SQL interface within a Laravel route and view.

### 1. Route and Controller Logic

[](#1-route-and-controller-logic)

Add this to your `routes/web.php`. It automatically fetches your database schema, processes the question via the engine, and executes the generated SQL.

```
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;
use Mirakmalsulton\LlmSql\LlmSqlEngine;
use Mirakmalsulton\LlmSql\Dto\Tables;

Route::match(['get', 'post'], '/sql', function (Request $request, LlmSqlEngine $engine) {
    $question = $request->input('question');
    $result = null;
    $rows = collect();
    $headers = [];

    if ($request->isMethod('post') && $question) {
        $allTables = Schema::getTableListing();
        $tables = new Tables();

        foreach ($allTables as $table) {
            $ddl = (array)DB::select("SHOW CREATE TABLE `{$table}`")[0];
            $columns = Schema::getColumnListing($table);
            $tables->addTable($table, $columns, $ddl['Create Table']);
        }

        try {
            $result = $engine->setTables($tables)->find($question);
            $dbData = DB::select($result['sql']);
            $rows = collect($dbData)->map(fn($item) => (array)$item);
            $headers = $rows->first() ? array_keys($rows->first()) : [];
        } catch (\Exception $e) {
            $headers = ['Error'];
            $rows = collect([['error' => $e->getMessage()]]);
        }
    }

    return view('welcome', [
        'result'   => $result,
        'rows'     => $rows,
        'headers'  => $headers,
        'question' => $question
    ]);
})->name('sql');
```

### 2. View (Blade)

[](#2-view-blade)

Use the built-in widgets to render the search interface and the results table in your `welcome.blade.php`.

```
{{-- Render the SQL search widget --}}
{!! \Mirakmalsulton\LlmSql\Widgets\SimpleSqlWidget::render(route('sql'), $result, $question) !!}

{{-- Render results table if query was successful --}}
@if($result && isset($rows))

        Results:
        {!! \Mirakmalsulton\LlmSql\Widgets\SimpleSqlWidget::renderTable($headers, $rows->toArray()) !!}

@endif
```

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance54

Moderate activity, may be stable

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/cebca8242d2f8a8c293444fa6b6a95b653393bc61e193dad0db6187b7617459d?d=identicon)[mirakmalsulton](/maintainers/mirakmalsulton)

---

Top Contributors

[![mirakmalsulton](https://avatars.githubusercontent.com/u/35186134?v=4)](https://github.com/mirakmalsulton "mirakmalsulton (3 commits)")

### Embed Badge

![Health badge](/badges/mirakmalsulton-llmsql/health.svg)

```
[![Health](https://phpackages.com/badges/mirakmalsulton-llmsql/health.svg)](https://phpackages.com/packages/mirakmalsulton-llmsql)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90440.3M211](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)[wildside/userstamps

Laravel Userstamps provides an Eloquent trait which automatically maintains `created\_by` and `updated\_by` columns on your model, populated by the currently authenticated user in your application.

7511.7M13](/packages/wildside-userstamps)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
