teitge / jsonsql
SQL-ähnliche Datenbankabfragen auf JSON-Dateien in PHP
Installs: 10
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/teitge/jsonsql
Requires
- php: >=7.4
README
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!
✅ Vorteile
- Kein Datenbankserver notwendig
- Läuft überall, auch in Shared-Hosting & Offline-Apps
- Vollständig in PHP geschrieben
- SQL-ähnliche Syntax (
select,where,groupBy,join, …) - Transaktionen, Verschlüsselung, Statistikfunktionen
- TableRepair: Datenbereinigung & automatische Feldsortierung nach Systemdefinition
- Erweiterbar & verständlich – ideal für Prototypen, Tools & Adminpanels
Neu in Version 1.1.1:
Recordset-Navigation wie in Delphi/ADO:
Nach jeder Abfrage (get()), jedeminsert()oderupdate()kannst du jetzt durch das Ergebnis wie in klassischen Desktop-Datenbanken blättern – mitfirst(),last(),next(),prev(),current(),seek($idx),eof(),bof(),totalCount()u.v.m.Intern speichert JsonSQL das Resultset im neuen Array
$currentDataund 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 & 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 jetztfirstRecord()– sie führt immer eine gezielte Query mitlimit(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 dersystem.jsonvorgegebene Feldreihenfolge.
Demo und Utility-Methoden inklusive!
🚀 Installation
Mit Composer installieren:
composer require teitge/jsonsql
Oder manuell einbinden:
require_once 'src/JsonSQL/JsonSQL.php';
⚡ Beispiel
use JsonSQL\JsonSQL; $db = new JsonSQL([ 'path' => __DIR__ . '/data', 'table' => 'users', ]); $users = $db->select(['id', 'name']) ->where('age', '>=', 18) ->orderBy('name') ->get();
🧰 Features
| Kategorie | Details |
|---|---|
| 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 & verzögert schreiben |
| Import/Export | CSV & MySQL (CREATE/INSERT) aus .system.json generieren |
| TableRepair & Bereinigung | Fehlende Felder ergänzen, unerlaubte Felder entfernen, automatische Sortierung |
| Modularer Code | PSR-4, eigene Traits & Klassen je Bereich |
📁 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)
| Typ | Bedeutung |
|---|---|
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 dersystem.jsongespeichert – für perfekte Konsistenz und Export-Kompatibilität.
🧪 Demos
👉 Vollständige Demos findest du unter /examples/demos:
- 🛠️ TableRepair & Analyse-Demo – prüft und repariert Tabellen nach Systemvorgabe
- 🔐 Passwortmanager
- 🚗 Fahrzeugdatenbank mit n:m-Kategorien
- 📦 Produktverwaltung mit Bildern & CSV-Export
- 📊 Statistiken & Charts
- 🧾 MiniShop mit JSON-Daten und Bestellung
📌 Roadmap
- Systemfelder & Validierung
- MySQL- & CSV-Export aus JSON
- Transaktionen
- Aggregatfunktionen
- TableRepair & Datenbereinigung
- Admin-UI zur Datenbearbeitung
- JsonSQL Plugin-API
- Dokumentationsgenerator aus system.json
- Visual Query Builder
🔐 Lizenz
MIT – kostenlos & offen für private oder kommerzielle Nutzung.
🤝 Mitwirken
Du hast Ideen, willst mithelfen oder Fehler melden?
→ Issues & Pull Requests sind willkommen!
🗂️ Komplett-Download
Du kannst auch den vollständigen Download inklusive Demo von https://www.json-sql.de/JsonSQL.zip herunterladen.
© 2024–2025 JsonSQL Team
🔗 Projektseite: https://www.json-sql.de
🔧 GitHub: https://github.com/johannes-teitge/JsonSQL