getSession

(No version information available, might only be in Git)

getSessionПодключается к серверу MySQL

Описание

mysql_xdevapi\getSession ( string $uri ) : mysql_xdevapi\Session

Подключается к серверу MySQL.

Список параметров

uri

URI к серверу MySQL, такой как mysqlx://user:password@host.

Формат URI:

scheme://[user[:[password]]@]target[:port][?attribute1=value1&attribute2=value2...

  • scheme: обязательный, протокол соединения

    В mysql_xdevapi это всегда 'mysqlx' (для X Protocol)

  • user: необязательный, учетная запись пользователя MySQL для аутентификации

  • password: необязательный, пароль пользователя MySQL для аутентификации

  • target: обязательный, экземпляр сервера, к которому относится соединение:

    * TCP-соединение (имя хоста, адрес IPv4 или адрес IPv6)

    * Путь к сокету Unix (локальный путь к файлу)

    * Именованный канал Windows (локальный путь к файлу)

  • port: необязательный, сетевой порт сервера MySQL.

    по умолчанию порт для X Protocol равен 33060

  • ?attribute=value: этот элемент является необязательным и определяет словарь данных, который содержит различные параметры, в том числе:

    • Атрибут auth (механизм аутентификации), поскольку он относится к зашифрованным соединениям. Для получения дополнительной информации смотрите » Параметры команды для зашифрованных соединений. Поддерживаются следующие значения: plain, mysql41, external, и sha256_mem.

    • Атрибут connect-timeout влияет на соединение, а не на последующие операции. Он устанавливается для каждого соединения на одном или нескольких хостах.

      Введите положительное целое число, чтобы определить время ожидания соединения в секундах, или введите 0 (ноль), чтобы отключить время ожидания (бесконечно). Не определяя время ожидания подключения, вы используется значение по умолчанию 10.

      Связанные, переменные среды MYSQLX_CONNECTION_TIMEOUT (время ожидания в секундах) и MYSQLX_TEST_CONNECTION_TIMEOUT (используемые во время выполнения тестов) могут быть установлены и использованы вместо connect-timeout соединения в URI. Параметр URI подключения к connect-timeout имеет приоритет над переменными среды.

Пример #1 Примеры URI

mysqlx://foobar
mysqlx://root@localhost?socket=%2Ftmp%2Fmysqld.sock%2F
mysqlx://foo:bar@localhost:33060
mysqlx://foo:bar@localhost:33160?ssl-mode=disabled
mysqlx://foo:bar@localhost:33260?ssl-mode=required
mysqlx://foo:bar@localhost:33360?ssl-mode=required&auth=mysql41
mysqlx://foo:bar@(/path/to/socket)
mysqlx://foo:bar@(/path/to/socket)?auth=sha256_mem
mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]
mysqlx://foobar?ssl-ca=(/path/to/ca.pem)&ssl-crl=(/path/to/crl.pem)
mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]?ssl-mode=disabled
mysqlx://foo:bar@localhost:33160/?connect-timeout=0
mysqlx://foo:bar@localhost:33160/?connect-timeout=10

Для получения дополнительной информации смотрите MySQL Shell » Подключение с использованием строки URI.

Возвращаемые значения

Объект Session.

Ошибки

Ошибка соединения вызывает Exception.

Примеры

Пример #2 Пример использования mysql_xdevapi\getSession()

<?php
try {
    
$session mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(
Exception $e) {
    die(
"Не удалось установить соединение: " $e->getMessage());
}

$schemas $session->getSchemas();
print_r($schemas);

$mysql_version $session->getServerVersion();
print_r($mysql_version);

var_dump($collection->find("name = 'Alfred'")->execute()->fetchOne());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => mysql_xdevapi\Schema Object
        (
            [name] => helloworld
        )
    [1] => mysql_xdevapi\Schema Object
        (
            [name] => information_schema
        )
    [2] => mysql_xdevapi\Schema Object
        (
            [name] => mysql
        )
    [3] => mysql_xdevapi\Schema Object
        (
            [name] => performance_schema
        )
    [4] => mysql_xdevapi\Schema Object
        (
            [name] => sys
        )
)

80012

array(4) {
  ["_id"]=>
  string(28) "00005ad66abf0001000400000003"
  ["age"]=>
  int(42)
  ["job"]=>
  string(7) "Butler"
  ["name"]=>
  string(4) "Alfred"
}