O ponto de entrada central para a X DevAPI é a função mysql_xdevapi\getSession(), que recebe uma URI para um servidor MySQL 8.0 e retorna um objeto mysql_xdevapi\Session.
Exemplo #1 Conectando a um Servidor MySQL
<?php
try {
$session = mysql_xdevapi\getSession("mysqlx://usuario:senha@servidor");
} catch(Exception $e) {
die("Não foi possível estabelecer conexão: " . $e->getMessage());
}
// ... use $session
?>
A sessão fornece acesso completo à API. Para uma nova instalação do Servidor MySQL, o primeiro passo é criar um esquema com uma coleção para armazenar dados:
Exemplo #2 Criando um Esquema e uma Coleção no Servidor MySQL
<?php
$schema = $session->createSchema("teste");
$collection = $schema->createCollection("exemplo");
?>
Ao armazenar dados, normalmente json_encode() é usada para codificar os dados em JSON, que assim podem ser armazenados em uma coleção.
O exemplo a seguir armazana dados na coleção criada anteriormente, e depois recupera partes dela novamente.
Exemplo #3 Armazenando e Recuperando Dados
<?php
$marco = [
"nome" => "Marco",
"idade" => 19,
"emprego" => "Programador"
];
$mike = [
"nome" => "Mike",
"idade" => 39,
"emprego" => "Gerente"
];
$schema = $session->getSchema("teste");
$collection = $schema->getCollection("exemplo");
$collection->add($marco, $mike)->execute();
var_dump($collection->find("nome = 'Mike'")->execute()->fetchOne());
?>
O exemplo acima produzirá algo semelhante a:
array(4) { ["_id"]=> string(28) "00005ad66aaf0000000000000003" ["idade"]=> int(39) ["emprego"]=> string(7) "Gerente" ["nome"]=> string(4) "Mike" }
O exemplo demonstra que o Servidor MySQL adiciona um campo extra de nome
_id
, que serve como chave primária para o documento.
O exemplo também demonstra que os dados recuperados são ordenados alfabeticamente, Esta ordem específica vem do armazenamento binário eficiente dentro do servidor MySQL, mas isso nem sempre é confiável. Refira-se à documentação do tipo de dados JSON do MySQL para detalhes.
Opcionalmente, use os iteradores do PHP para buscar múltiplos documentos:
Exemplo #4 Buscando e Iterando sobre Múltiplos Documentos
<?php
$result = $collection->find()->execute();
foreach ($result as $doc) {
echo "{$doc["nome"]} é um {$doc["emprego"]}.\n";
}
?>
O exemplo acima produzirá algo semelhante a:
Marco é um Programador. Mike é um Gerente.