PHP 8.4.2 Released!

getSession

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

getSessionConecta a um servidor MySQL

Descrição

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

Conecta a um servidor MySQL.

Parâmetros

uri

A URI para o servidor MySQL server, como mysqlx://user:password@host.

Formato da URI:

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

  • scheme: requerido, o protocolo de conexão

    Na mysql_xdevapi é sempre 'mysqlx' (para o Protocolo X)

  • user: opcional, a conta de usuário do MySQL para autenticação

  • password: opcional, a senha do usuário do MySQL para autenticação

  • target: requerido, a instância do servidor à qual a conexão se refere:

    * Conexão TCP (nome de servidor, endereço IPv4 ou endereço IPv6)

    * Caminho do soquete Unix (caminho de arquivo local)

    * Pipe nomeado do Windows (caminho de arquivo local)

  • port: opcional, porta de rede do servidor MySQL.

    Por padrão a porta do Protocolo X é 33060

  • ?attribute=value: este elemento é opcional e especifica um dicionário de dados que contém diferentes opções, incluindo:

    • O atributo auth (mecanismo de autenticação) relacionado a conexões criptografadas. Para informação adicional, consulte » Opções de Comando para Conexões Criptografadas. Os seguintes valores de 'auth' são suportados: plain, mysql41, external e sha256_mem.

    • O atributo connect-timeout afeta a conexão e não as operações subsequentes. É definido por conexão, seja em servidor único ou em múltiplos servidores.

      Passar um número inteiro positivo define o tempo limite da conexão em segundos, passar 0 (zero) desabilita o tempo limite (infinito). Não definir o tempo limite de conexão usa o valor padrão de 10.

      Relacionado, as variáveis ​​de ambiente MYSQLX_CONNECTION_TIMEOUT (tempo limite em segundos) e MYSQLX_TEST_CONNECTION_TIMEOUT (usadas durante a execução de testes) podem ser definidas e usadas em vez do tempo limite de conexão na URI. A opção de URI de tempo limite de conexão tem precedência sobre essas variáveis ​​de ambiente.

    • O atributo opcional compression aceita estes valores: preferred (o cliente negocia com o servidor para encontrar um algoritmo suportado; a conexão é descompactada se um algoritmo mutuamente suportado não for encontrado), required (como "preferred", mas a conexão é terminada se um algoritmo mutuamente suportado não for encontrado), ou disabled (conexão é descompactada). O padrão é preferred.

      Esta opção foi adicionada na versão 8.0.20.

    • O atributo opcional compression-algorithms define os algortimos de compressão desejados (e sua ordem preferida de uso): zstd_stream (sinônimo: zstd), lz4_message (sinônimo: lz4), ou deflate_stream (sinônimos: deflate ou zlib). Por padrão, a ordem usada (dependendo da disponibilidade do sistema) é lz4_message, zstd_stream e depois deflate_stream. Por exemplo, passar compression-algorithms=[lz4,zstd_stream] usa lz4 se estiver disponível, caso contrário, zstd_stream é usado. Se ambos estiverem indisponíveis, o comportamento dependerá do valor da compactação, por exemplo, se compression=required então falhará com um erro.

      Esta opção foi adicionada na versão 8.0.22.

Exemplo #1 Exemplos de 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&compression=required
mysqlx://foo:bar@localhost:33160/?connect-timeout=10&compression=required&compression-algorithms=[lz4,zstd_stream]

Para informações relacionadas, consulte a documentação sobre » Conectando com uma String de URI do Shell do MySQL.

Valor Retornado

Um objeto Session.

Erros/Exceções

Uma falha de conexão lança uma Exception.

Exemplos

Exemplo #2 Exemplo de mysql_xdevapi\getSession()

<?php
try {
$session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(
Exception $e) {
die(
"A conexão não pode ser estabelecida: " . $e->getMessage());
}

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

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

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

O exemplo acima produzirá algo semelhante a:

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"
}
adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top