Le point d'entrée central de l'API X est la fonction mysql_xdevapi\getSession(), qui reçoit une URI vers un serveur MySQL 8.0 et renvoie un objet mysql_xdevapi\Session.
Exemple #1 Connecting to a MySQL Server
<?php
try {
$session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(Exception $e) {
die("Connection could not be established: " . $e->getMessage());
}
// ... use $session
?>
La session fournit un accès complet à l'API. Pour une nouvelle installation de serveur MySQL, la première étape consiste à créer un schéma de base de données avec une collection pour stocker des données :
Exemple #2 Creating a Schema and Collection on the MySQL Server
<?php
$schema = $session->createSchema("test");
$collection = $schema->createCollection("example");
?>
Lorsque vous stockez des données, généralement json_encode() est utilisé pour encoder les données en JSON, qui peuvent ensuite être stockées dans une collection.
Les exemples suivants stockent des données dans la collection que nous avons créée précédemment, puis récupèrent à nouveau des parties de ces données.
Exemple #3 Stocker et Récupérer des Données
<?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());
?>
Résultat de l'exemple ci-dessus est similaire à :
array(4) { ["_id"]=> string(28) "00005ad66aaf0000000000000003" ["age"]=> int(39) ["job"]=> string(7) "Manager" ["name"]=> string(4) "Mike" }
Cet exemple démontre que le serveur MySQL ajoute un champ supplémentaire nommé
_id
, qui sert de clé primaire au document.
Cet exemple démontre également que les données récupérées sont triées par ordre alphabétique. Cet ordre spécifique provient du stockage binaire efficace à l'intérieur du serveur MySQL, mais il ne faut pas s'y fier. Référez-vous à la documentation du type de données JSON de MySQL pour plus de détails.
Optionnellement, utilisez les itérateurs de PHP pour récupérer plusieurs documents :
Exemple #4 Récupérer et Itérer sur Plusieurs Documents
<?php
$result = $collection->find()->execute();
foreach ($result as $doc) {
echo "{$doc["name"]} is a {$doc["job"]}.\n";
}
?>
Résultat de l'exemple ci-dessus est similaire à :
Marco is a Programmer. Mike is a Manager.