PHPackages                             teitge/jsonsql - 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. teitge/jsonsql

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

teitge/jsonsql
==============

SQL-ähnliche Datenbankabfragen auf JSON-Dateien in PHP

v1.1.1(11mo ago)010MITPHPPHP &gt;=7.4

Since Apr 17Pushed 11mo ago1 watchersCompare

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

READMEChangelogDependenciesVersions (10)Used By (0)

🗂️ JsonSQL
==========

[](#️-jsonsql)

**JsonSQL** ist eine moderne PHP-Bibliothek für SQL-ähnliche Abfragen und Datenmanagement direkt auf **JSON-Dateien**.
Sie funktioniert **komplett dateibasiert** – ohne MySQL, SQLite oder Datenbankserver.
**Neu ab Version 1.0.8:** Jetzt mit leistungsstarker **TableRepair-Funktion** zur automatischen Datenbereinigung und Feldsortierung nach Systemdefinition!

[![Latest Stable Version](https://camo.githubusercontent.com/f363066178183cab591ad3b8eab2c05fafa54872080724263073d6652c70fe6c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a736f6e73716c2f6a736f6e73716c2e737667)](https://packagist.org/packages/jsonsql/jsonsql)[![License](https://camo.githubusercontent.com/4fa90b9903497874e85663a0b079a5be47edda1a4973903e16fae8d005b8361d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6a736f6e73716c2f6a736f6e73716c2e737667)](https://packagist.org/packages/jsonsql/jsonsql)

---

✅ Vorteile
----------

[](#-vorteile)

- Kein Datenbankserver notwendig
- Läuft überall, auch in Shared-Hosting &amp; Offline-Apps
- Vollständig in PHP geschrieben
- SQL-ähnliche Syntax (`select`, `where`, `groupBy`, `join`, …)
- Transaktionen, Verschlüsselung, Statistikfunktionen
- **TableRepair:** Datenbereinigung &amp; automatische Feldsortierung nach Systemdefinition
- Erweiterbar &amp; verständlich – ideal für Prototypen, Tools &amp; Adminpanels

---

> **Neu in Version 1.1.1:**
>
> **Recordset-Navigation wie in Delphi/ADO**:
> Nach jeder Abfrage (`get()`), jedem `insert()` oder `update()` kannst du jetzt durch das Ergebnis wie in klassischen Desktop-Datenbanken blättern – mit `first()`, `last()`, `next()`, `prev()`, `current()`, `seek($idx)`, `eof()`, `bof()`, `totalCount()` u.v.m.
>
> Intern speichert JsonSQL das Resultset im neuen Array `$currentData` und verwaltet den aktuellen Zeiger über `$currentRecordIndex`. Alle Navigationsmethoden arbeiten auf diesem Puffer – blitzschnell, ohne neue Abfrage!
>
> **Bestens geeignet für:**
>
> - Detail-/Editor-Ansichten
> - Master-Detail-Layouts
> - Pagination &amp; Blätter-Buttons
> - Komplexe Admin-Oberflächen
>
> **Beispiel:**
>
> ```
> $db->from('produkte')->where('status', 'active')->get();
> $item = $db->first();
> while (!$db->eof()) {
>     echo $item['name'] . "\n";
>     $item = $db->next();
> }
> ```
>
>
>
> **Hinweis:**
> Die klassische Einzelabfrage-Methode heißt jetzt `firstRecord()` – sie führt immer eine gezielte Query mit `limit(1)` aus.
> Die neuen Navigationsmethoden blättern **im bereits geladenen Resultset** – ohne weitere Datenbankzugriffe.
>
> ---

> **Neu in Version 1.1.0:**
> Automatische **TableRepair**-Funktion: Ergänzt fehlende Pflichtfelder, entfernt unerlaubte Felder und bringt alle Datensätze in die von der `system.json` vorgegebene Feldreihenfolge.
> **Demo und Utility-Methoden inklusive!**

---

🚀 Installation
--------------

[](#-installation)

Mit Composer installieren:

```
composer require teitge/jsonsql
```

Oder manuell einbinden:

```
require_once 'src/JsonSQL/JsonSQL.php';
```

---

⚡ Beispiel
----------

[](#-beispiel)

```
use JsonSQL\JsonSQL;

$db = new JsonSQL([
    'path' => __DIR__ . '/data',
    'table' => 'users',
]);

$users = $db->select(['id', 'name'])
            ->where('age', '>=', 18)
            ->orderBy('name')
            ->get();
```

---

🧰 Features
----------

[](#-features)

KategorieDetails**Datenquelle**JSON-Dateien je Tabelle**Abfragen**`select`, `where`, `orderBy`, `groupBy`, `join`, `limit`, `offset`**Systemlogik**`autoincrement`, `autouuid`, `autohash`, `timestamps`, Validierung**Verschlüsselung**Felder können automatisch ver- und entschlüsselt werden (`encrypt`)**Statistik**`sum`, `avg`, `count`, `median`, `mode`, `stddev`, `variance`, …**Transaktionen**`transact()`, `commit()` – sicher &amp; verzögert schreiben**Import/Export**CSV &amp; MySQL (CREATE/INSERT) aus `.system.json` generieren**TableRepair &amp; Bereinigung**Fehlende Felder ergänzen, unerlaubte Felder entfernen, automatische Sortierung**Modularer Code**PSR-4, eigene Traits &amp; Klassen je Bereich---

📁 Struktur
----------

[](#-struktur)

```
src/
├── JsonSQL.php          // Hauptklasse
├── JS_Base.php          // Gemeinsame Methoden
├── JS_Select.php        // SELECT-Logik
├── JS_Insert.php        // INSERT-Logik
├── JS_System.php        // Automatische Felder, Validierung, Timestamps, ...
└── ...

```

---

🔎 Systemfelder (system.json)
----------------------------

[](#-systemfelder-systemjson)

TypBedeutung`autoincrement`Zählt IDs automatisch hoch`autouuid`Generiert UUIDs bei jedem Insert`autohash`Erzeugt Hash (z. B. md5, sha256)`timestamp:create`Zeitstempel bei Erstellung`timestamp:update`Zeitstempel bei Änderung`encrypt` / `decrypt`Feldinhalt verschlüsseln / entschlüsseln> **Hinweis:**
> Beim Einfügen, Aktualisieren **und Reparieren** von Datensätzen wird die Feldreihenfolge jetzt automatisch nach der `system.json` gespeichert – für perfekte Konsistenz und Export-Kompatibilität.

---

🧪 Demos
-------

[](#-demos)

👉 Vollständige Demos findest du unter `/examples/demos`:

- 🛠️ **TableRepair &amp; Analyse-Demo** – prüft und repariert Tabellen nach Systemvorgabe
- 🔐 Passwortmanager
- 🚗 Fahrzeugdatenbank mit n:m-Kategorien
- 📦 Produktverwaltung mit Bildern &amp; CSV-Export
- 📊 Statistiken &amp; Charts
- 🧾 MiniShop mit JSON-Daten und Bestellung

---

📌 Roadmap
---------

[](#-roadmap)

- Systemfelder &amp; Validierung
- MySQL- &amp; CSV-Export aus JSON
- Transaktionen
- Aggregatfunktionen
- TableRepair &amp; Datenbereinigung
- Admin-UI zur Datenbearbeitung
- JsonSQL Plugin-API
- Dokumentationsgenerator aus system.json
- Visual Query Builder

---

🔐 Lizenz
--------

[](#-lizenz)

MIT – kostenlos &amp; offen für private oder kommerzielle Nutzung.

---

🤝 Mitwirken
-----------

[](#-mitwirken)

Du hast Ideen, willst mithelfen oder Fehler melden?
→ Issues &amp; Pull Requests sind willkommen!

---

### 🗂️ Komplett-Download

[](#️-komplett-download)

Du kannst auch den vollständigen Download inklusive Demo von  herunterladen.

---

**© 2024–2025 JsonSQL Team**
🔗 Projektseite:
🔧 GitHub:

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance50

Moderate activity, may be stable

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Every ~4 days

Total

9

Last Release

358d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ca7ac8571f07dd9698642603e0e116b662f9fdcd72af6174aad0a9cb3c4b2bad?d=identicon)[johannes-teitge](/maintainers/johannes-teitge)

---

Top Contributors

[![Dscho-Delphi](https://avatars.githubusercontent.com/u/184866239?v=4)](https://github.com/Dscho-Delphi "Dscho-Delphi (1 commits)")

### Embed Badge

![Health badge](/badges/teitge-jsonsql/health.svg)

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

###  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)
