2024 年 PHP 日本研討會

範例

X DevAPI 的中心入口點是 mysql_xdevapi\getSession() 函式,它接收指向 MySQL 8.0 伺服器的 URI 並返回 mysql_xdevapi\Session 物件。

範例 #1 連線到 MySQL 伺服器

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

// ... 使用 $session
?>

該工作階段提供對 API 的完整存取權。對於新的 MySQL 伺服器安裝,第一步是使用集合建立資料庫綱要來儲存資料。

範例 #2:在 MySQL 伺服器上建立 Schema 和 Collection

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

儲存資料時,通常使用 json_encode() 函式將資料編碼成 JSON 格式,然後儲存在 Collection 中。

以下範例示範如何將資料儲存到先前建立的 Collection 中,然後再擷取部分資料。

範例 #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 的額外欄位,作為文件的 primary key (主鍵)。

此範例還說明擷取的資料會依字母順序排序。這個特定順序來自 MySQL 伺服器內部的高效二進位儲存方式,但不應依賴它。詳情請參閱 MySQL JSON 資料類型文件。

(選用)使用 PHP 的迭代器來擷取多個文件。

範例 #4:擷取和迭代多個文件

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

上述範例將輸出類似以下的內容:

Marco is a Programmer.
Mike is a Manager.
新增註記

使用者貢獻的註記

此頁面沒有使用者貢獻的註記。
To Top