1
0
mirror of https://github.com/php/doc-de.git synced 2026-03-24 07:12:15 +01:00
Files
Martin Samesch daf1add890 Sync with EN
2024-08-19 21:51:50 +02:00

154 lines
3.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 8deee9585d9c8485493e35bcb7dde61b29c30854 Maintainer: samesch Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="mysql-xdevapi.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.examples;
<para>
Der zentrale Einstiegspunkt in die X DevAPI ist die Funktion
<function>mysql_xdevapi\getSession</function>, die einen URI zu einem MySQL
8.0 Server benötigt und ein
<classname>mysql_xdevapi\Session</classname>-Objekt zurückgibt.
</para>
<example>
<title>Verbindung zu einem MySQL-Server aufbauen</title>
<programlisting role="php">
<![CDATA[
<?php
try {
$session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(Exception $e) {
die("Die Verbindung konnte nicht hergestellt werden: " . $e->getMessage());
}
// ... $session verwenden
?>
]]>
</programlisting>
</example>
<para>
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:
</para>
<example>
<title>Erstellen eines Schemas und einer Sammlung auf dem MySQL-Server</title>
<programlisting role="php">
<![CDATA[
<?php
$schema = $session->createSchema("test");
$collection = $schema->createCollection("example");
?>
]]>
</programlisting>
</example>
<para>
Beim Speichern von Daten wird üblicherweise die Funktion
<function>json_encode</function> verwendet, um die Daten in JSON zu
kodieren, die dann in einer Sammlung gespeichert werden können.
</para>
<para>
Im folgenden Beispiel werden Daten in der zuvor erstellten Sammlung
gespeichert und Teile davon wieder abgerufen.
</para>
<example>
<title>Speichern und Abrufen von Daten</title>
<programlisting role="php">
<![CDATA[
<?php
$marco = [
"name" => "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());
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
array(4) {
["_id"]=>
string(28) "00005ad66aaf0000000000000003"
["age"]=>
int(39)
["job"]=>
string(7) "Manager"
["name"]=>
string(4) "Mike"
}
]]>
</screen>
</example>
<para>
Das folgende Beispiel zeigt, dass der MySQL-Server ein zusätzliches Feld
namens <code>_id</code> hinzufügt, das als Primärschlüssel für das Dokument
dient.
</para>
<para>
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.
</para>
<para>
Optional können die PHP-Iteratoren verwendet werden, um mehrere Dokumente
abzurufen:
</para>
<example>
<title>Abrufen und Durchlaufen mehrerer Dokumente</title>
<programlisting role="php">
<![CDATA[
<?php
$result = $collection->find()->execute();
foreach ($result as $doc) {
echo "{$doc["name"]} is a {$doc["job"]}.\n";
}
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Marco is a Programmer.
Mike is a Manager.
]]>
</screen>
</example>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->