Häufig gestellte Fragen (FAQ)

Hier findest du Antworten auf häufige Fragen rund um JsonSQL. Nutze die Suche oder klappe alle Fragen auf.

JsonSQL ist eine PHP-Bibliothek, mit der du SQL-ähnliche Abfragen auf JSON-Dateien durchführen kannst – ganz ohne Datenbank.

Die Klasse arbeitet direkt mit JSON-Dateien, die wie Datenbank-Tabellen behandelt werden. SQL-ähnliche Funktionen wie select, where, join oder orderBy stehen zur Verfügung.

JsonSQL ist ideal für kleine Projekte, portable Datenbanken, einfache Admin-Tools oder embedded Anwendungen, bei denen keine relationale DB nötig ist.

In einfachen JSON-Dateien im angegebenen Datenbankverzeichnis. Jede Tabelle entspricht einer Datei (z. B. users.json).

Da es sich um reine Files handelt, sollte das Verzeichnis durch serverseitige Zugriffsrechte (z. B. .htaccess oder Permission) geschützt sein.

Nutze addAutoincrementField('id'). Bei jedem insert() wird automatisch eine eindeutige ID vergeben.

Mit getLastInsertId() erhältst du die letzte vergebene ID direkt nach einem Insert.

Mit addEncryptedField('password'). Die Daten werden dann per AES verschlüsselt gespeichert.

Nutze isEncryptedField('password'), um das zu ermitteln.

Nutze removeEncryptedField('feldname') – die system.json wird entsprechend angepasst.

Du kannst ein Feld mit addAutoHashField('hash', 'sha256') konfigurieren, das dann automatisch aus anderen Daten berechnet wird.

autoincrement erzeugt eine laufende ID, autohash generiert einen Hash basierend auf dem Datensatz.

Nutze truncate('tabelle'). Dabei wird die Datei neu geschrieben und ggf. angelegt.

Mit getRawTableData() erhältst du den Original-JSON-Inhalt der Tabelle als String.

Seit Version 2 liegt sie pro Tabelle vor: z. B. users.system.json im gleichen Verzeichnis wie users.json.

Ja, aber es wird empfohlen, das über die Klassenmethoden wie addEncryptedField oder addAutoincrementField zu tun.

JsonSQL unterstützt INNER, LEFT, RIGHT und FULL OUTER JOIN. Beispiel: ->join('kunden', 'id', 'LEFT').

Mit where([['field', 'like', '%suchwort%']]) kannst du flexible Bedingungen definieren.

Siehe unsere Bootstrap-basierten Demos: Artikelverwaltung, Passwortdemo, Autoincrement und Hashing.

Ja, z. B. für Adminpanels, Userlogins oder konfigurierbare Tools im Backend.

Immer eine Tabelle pro Abfrage mit from('tabelle'). Für JOINs kannst du weitere Tabellen verbinden.

Nutze select(['id', 'name']) um nur bestimmte Felder zurückzugeben.

Ja, dank flock() werden Datei-Zugriffe exklusiv gelockt, um Konflikte bei gleichzeitigen Zugriffen zu verhindern.

Für einfache Anwendungen bis einige Tausend Datensätze pro Tabelle kein Problem. Größere Datenmengen solltest du testen.

Ja, sie sind direkt nutzbar (z. B. für Backups, Syncs oder API-Ausgaben). Auch CSV/Excel-Exports lassen sich leicht ableiten.

Änderungen erfolgen im Speicher, dann wird die Datei neu geschrieben. Es gibt keine Transaktionen.

Nutze die Felddefinitionen in tabelle.system.json mit autoincrement, autohash oder encrypt.

Erstelle ein Verzeichnis, definiere deine Tabellen (z. B. products.json) und binde JsonSQL ein. Demos helfen beim Einstieg.

Du kannst jederzeit mit getRawTableData() oder var_dump() debuggen. Ein erweiterter Debug-Modus ist in Planung.