&reftitle.examples;
Der zentrale Einstiegspunkt in die X DevAPI ist die Funktion
mysql_xdevapi\getSession, die einen URI zu einem MySQL
8.0 Server benötigt und ein
mysql_xdevapi\Session-Objekt zurückgibt.
Verbindung zu einem MySQL-Server aufbauen
getMessage());
}
// ... $session verwenden
?>
]]>
Die Session bietet einen vollständigen Zugriff auf die API. Bei einer
neuen MySQL-Installation muss zunächst ein Datenbankschema mit einer
Sammlung zum Speichern der Daten erstellt werden:
Erstellen eines Schemas und einer Sammlung auf dem MySQL-Server
createSchema("test");
$collection = $schema->createCollection("example");
?>
]]>
Beim Speichern von Daten wird üblicherweise die Funktion
json_encode verwendet, um die Daten in JSON zu
kodieren, die dann in einer Sammlung gespeichert werden können.
Im folgenden Beispiel werden Daten in der zuvor erstellten Sammlung
gespeichert und Teile davon wieder abgerufen.
Speichern und Abrufen von Daten
"Marco",
"age" => 19,
"job" => "Programmer"
];
$mike = [
"name" => "Mike",
"age" => 39,
"job" => "Manager"
];
$schema = $session->getSchema("test");
$collection = $schema->getCollection("example");
$collection->add($marco, $mike)->execute();
var_dump($collection->find("name = 'Mike'")->execute()->fetchOne());
?>
]]>
&example.outputs.similar;
string(28) "00005ad66aaf0000000000000003"
["age"]=>
int(39)
["job"]=>
string(7) "Manager"
["name"]=>
string(4) "Mike"
}
]]>
Das folgende Beispiel zeigt, dass der MySQL-Server ein zusätzliches Feld
namens _id
hinzufügt, das als Primärschlüssel für das Dokument
dient.
Das Beispiel zeigt auch, dass die abgerufenen Daten alphabetisch sortiert
sind. Diese spezifische Reihenfolge ergibt sich aus der effizienten
Binärspeicherung im MySQL-Server, aber man sollte sich nicht darauf
verlassen. Einzelheiten dazu sind in der MySQL-Dokumentation zum Datentyp
JSON zu finden.
Optional können die PHP-Iteratoren verwendet werden, um mehrere Dokumente
abzurufen:
Abrufen und Durchlaufen mehrerer Dokumente
find()->execute();
foreach ($result as $doc) {
echo "{$doc["name"]} is a {$doc["job"]}.\n";
}
?>
]]>
&example.outputs.similar;