Start · Sprachen · PHP · Referenz · mysql_xdevapi\DatabaseObject

mysql_xdevapi\DatabaseObject

Interface

Basisinterface für alle Datenbankobjekte der MySQL X DevAPI in PHP.

seit PHP 8.0.0 Kategorie: db

Signatur

interface DatabaseObject

Beschreibung

mysql_xdevapi\DatabaseObject ist das grundlegende Interface, von dem alle Datenbankobjekte der MySQL X DevAPI abgeleitet sind. Es stellt eine gemeinsame Basisschnittstelle für Objekte wie Schema, Collection, Table und ähnliche Datenbankobjekte bereit.

Das Interface definiert die Mindestanforderungen, die jedes Datenbankobjekt in der X DevAPI erfüllen muss, und ermöglicht es, einheitlich mit verschiedenen Datenbankressourcen zu arbeiten. Konkrete Implementierungen dieses Interfaces bieten Methoden zum Abrufen von Namen, Sitzungen und zur Überprüfung der Existenz des Objekts in der Datenbank.

Die X DevAPI (mysql_xdevapi) ist eine moderne Erweiterung für MySQL, die sowohl relationale Abfragen als auch die dokumentenorientierte Arbeit mit JSON-Daten (NoSQL) unterstützt. Sie ersetzt die veralteten mysql- und mysqli-Erweiterungen für neue Anwendungsfälle und setzt das X Protocol voraus.

  • Abgeleitete Typen: Schema, Collection, Table, View
  • Erfordert einen laufenden MySQL-Server mit aktiviertem X Protocol (Standard-Port: 33060)
  • Wird typischerweise nicht direkt instanziiert, sondern über Session-Methoden bezogen

Beispiele

Datenbankschema über Session ermitteln und als DatabaseObject nutzen

<?php
// Verbindung zur MySQL-Datenbank über X DevAPI
$session = mysql_xdevapi\getSession('mysqlx://user:password@localhost/mydb');

// Gibt ein Schema-Objekt zurück, das DatabaseObject implementiert
$schema = $session->getSchema('mydb');

// getName() ist eine Methode, die von DatabaseObject abgeleitete Klassen bereitstellen
echo $schema->getName(); // 'mydb'

// Prüfen, ob das Schema existiert
if ($schema->existsInDatabase()) {
    echo 'Schema existiert.';
} else {
    echo 'Schema nicht gefunden.';
}
mydb Schema existiert.

Collection als DatabaseObject verwenden

<?php
$session = mysql_xdevapi\getSession('mysqlx://user:password@localhost/mydb');
$schema = $session->getSchema('mydb');

// Collection implementiert ebenfalls DatabaseObject
$collection = $schema->getCollection('users');

echo $collection->getName(); // 'users'

// Sitzung über das Objekt abrufen
$retrievedSession = $collection->getSession();
echo get_class($retrievedSession); // mysql_xdevapi\Session
users mysql_xdevapi\Session

// Wichtig · Fallstricke

Voraussetzung: Die Erweiterung mysql_xdevapi muss installiert und aktiviert sein (pecl install mysql_xdevapi). Der MySQL-Server muss das X Protocol unterstützen (MySQL 5.7.12+) und der X Plugin-Port (Standard: 33060) muss erreichbar sein.

Sicherheit: Zugangsdaten sollten niemals im Quellcode hart kodiert werden. Nutze Umgebungsvariablen oder sichere Konfigurationsdateien, um DSN-Strings mit Passwörtern bereitzustellen.

Hinweis: Die mysql_xdevapi-Erweiterung befindet sich im PECL-Repository und ist nicht Teil der Standard-PHP-Distribution. Die API kann sich zwischen Versionen ändern.