Mysql_xdevapi Examples

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("Connection could not be established: " . $e->getMessage());
}

// ... use $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.