示例

X DevAPI 的中心入口点是 mysql_xdevapi\getSession() 函数,它接收指向 MySQL 8.0 服务器的 URI 并返回一个 mysql_xdevap\Session 对象。

示例 #1 连接到 MySQL 服务器

<?php
try {
$session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(
Exception $e) {
die(
"连接无法建立: " . $e->getMessage());
}

// ... 使用 $session
?>

该会话提供对 API 的完全访问权限。对于新的 MySQL 服务器安装,第一步是创建一个包含用于存储数据的集合的数据库模式。

示例 #2 在 MySQL 服务器上创建模式和集合

<?php
$schema
= $session->createSchema("test");
$collection = $schema->createCollection("example");
?>

存储数据时,通常使用 json_encode() 将数据编码为 JSON,然后可以将其存储在集合中。

以下示例将数据存储到我们之前创建的集合中,然后再次检索部分数据。

示例 #3 存储和检索数据

<?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());
?>

上面的示例将输出类似于以下内容

array(4) {
  ["_id"]=>
  string(28) "00005ad66aaf0000000000000003"
  ["age"]=>
  int(39)
  ["job"]=>
  string(7) "Manager"
  ["name"]=>
  string(4) "Mike"
}

该示例表明 MySQL 服务器添加了一个名为 _id 的额外字段,它充当文档的主键。

该示例还表明检索到的数据按字母顺序排序。该特定顺序来自 MySQL 服务器内部的高效二进制存储,但不应依赖于它。有关详细信息,请参阅 MySQL JSON 数据类型文档。

可以选择使用 PHP 的迭代器来获取多个文档

示例 #4 获取和迭代多个文档

<?php
$result
= $collection->find()->execute();
foreach (
$result as $doc) {
echo
"{$doc["name"]} is a {$doc["job"]}.\n";
}
?>

上面的示例将输出类似于以下内容

Marco is a Programmer.
Mike is a Manager.
添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top