&reftitle.examples;
X DevAPI の中心的なエントリポイントは、
mysql_xdevapi\getSession 関数です。
これは MySQL 8.0 サーバーへの URI を受取り、
mysql_xdevapi\Session オブジェクトを返します。
MySQL Serverへの接続
getMessage());
}
// ... use $session
?>
]]>
セッションは、API への完全なアクセスを提供します。
新しい MySQL サーバーをインストールした後の最初のステップは、
データを保存するために、コレクションを使ってデータベースのスキーマを作ることです:
MySQL サーバー上で、スキーマとコレクションを作る
createSchema("test");
$collection = $schema->createCollection("example");
?>
]]>
データを保存する際には、
json_encode 関数を使い、データを JSON にエンコードします。
JSON はコレクションに保存するのに使います。
次の例は、既に述べた例で作ったコレクションにデータを保存します。
そして、その一部を再度取得します。
データを保存し、取得する
"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"
}
]]>
この例では、文書へのプライマリーキーの役割を果たす
_id という追加フィールドを MySQL サーバーが追加していることを示しています。
さらにこの例は、取得したデータがアルファベット順にソートされていることも示しています。
この特定の並び順は、MySQL サーバー内の効率的なバイナリストレージから来ていますが、
それに依存すべきではありません。詳細は、MySQL の JSON データ型のドキュメントを参照ください。
オプションで、複数の文書を取得するのに、PHP のイテレータが使えます。
複数の文書を取得し、それを走査する
find()->execute();
foreach ($result as $doc) {
echo "{$doc["name"]} is a {$doc["job"]}.\n";
}
?>
]]>
&example.outputs.similar;