Notice that when using "localhost" as hostname the port option might be ignored.
If you wish to connect thru a different port than default, substitute "127.0.0.1" for localhost.
(PHP 5, PHP 7, PHP 8)
mysqli::real_connect -- mysqli_real_connect — Abre uma conexão com um servidor mysql
Estilo orientado à objeto
$host
= ?,$username
= ?,$passwd
= ?,$dbname
= ?,$port
= ?,$socket
= ?,$flags
= ?Estilo procedural
$link
,$host
= ?,$username
= ?,$passwd
= ?,$dbname
= ?,$port
= ?,$socket
= ?,$flags
= ?Estabeleça uma conexão com um mecanismo de banco de dados MySQL.
Esta função difere de mysqli_connect():
mysqli_real_connect() precisa de um objeto válido que deve ser criado pela função mysqli_init().
Com a função mysqli_options() você pode definir várias opções de conexão.
Existe um parâmetro flags
.
link
Somente no estilo procedural: Um recurso link retornado por mysqli_connect() ou mysqli_init()
host
Pode ser um nome de host ou um endereço IP. Passando o valor null
ou a string "localhost" para este parâmetro, assume-se o host
local. Quando possível, serão usados pipes em vez do
protocolo TCP/IP.
username
O nome de usuário do MySQL.
passwd
Se for fornecido ou null
, o servidor MySQL tentará autenticar
o usuário somente com relação aos registros de usuário que não possuem senha. Isso
permite que um nome de usuário seja usado com permissões diferentes (dependendo
se uma senha foi fornecida ou não).
dbname
Se fornecido, especificará o banco de dados padrão a ser usado ao realizar consultas.
port
Especifica o número da porta para tentar se conectar ao servidor MySQL.
socket
Especifica o soquete ou pipe nomeado que deve ser usado.
Nota:
A especificação do parâmetro
socket
não determinará explicitamente o tipo de conexão a ser usada ao conectar-se ao servidor MySQL. A forma como a conexão é feita com o banco de dados MySQL é determinada pelo parâmetro dohost
.
flags
Com as flags
de parâmetro, você pode definir diferentes
opções de conexão:
Nome | Descrição |
---|---|
MYSQLI_CLIENT_COMPRESS |
Usar protocolo de compressão |
MYSQLI_CLIENT_FOUND_ROWS |
retorna o número de linhas correspondentes, não o número de linhas afetadas |
MYSQLI_CLIENT_IGNORE_SPACE |
Permita espaços após os nomes das funções. Torna todos os nomes de função palavras reservadas. |
MYSQLI_CLIENT_INTERACTIVE |
Permita segundos de interactive_timeout (em vez de
wait_timeout segundos) de inatividade antes de fechar a conexão
|
MYSQLI_CLIENT_SSL |
Usar SSL (criptografia) |
MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT |
Como MYSQLI_CLIENT_SSL , mas desabilita a validação do certificado
SSL fornecido. Isso é apenas para instalações usando MySQL Native Driver e MySQL 5.6 ou posterior.
|
Nota:
Por motivos de segurança, o sinalizador
MULTI_STATEMENT
não é suportado no PHP. Se você deseja executar várias consultas, use a função mysqli_multi_query().
Retorna true
em caso de sucesso ou false
em caso de falha.
If mysqli error reporting is enabled (MYSQLI_REPORT_ERROR
) and the requested operation fails,
a warning is generated. If, in addition, the mode is set to MYSQLI_REPORT_STRICT
,
a mysqli_sql_exception is thrown instead.
Exemplo #1 mysqli::real_connect() exemplo
Estilo orientado à objeto
<?php
$mysqli = mysqli_init();
if (!$mysqli) {
die('mysqli_init failed');
}
if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('A configuração MYSQLI_INIT_COMMAND falhou');
}
if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('A configuração MYSQLI_OPT_CONNECT_TIMEOUT falhou');
}
if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db')) {
die('Erro de conexão (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Sucesso... ' . $mysqli->host_info . "\n";
$mysqli->close();
?>
Estilo orientado à objeto ao estender a classe mysqli
<?php
class foo_mysqli extends mysqli {
public function __construct($host, $user, $pass, $db) {
parent::init();
if (!parent::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('A configuração MYSQLI_INIT_COMMAND falhou');
}
if (!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('A configuração MYSQLI_OPT_CONNECT_TIMEOUT falhou');
}
if (!parent::real_connect($host, $user, $pass, $db)) {
die('Erro de conexão (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
}
}
$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');
echo 'Sucesso... ' . $db->host_info . "\n";
$db->close();
?>
Estilo procedural
<?php
$link = mysqli_init();
if (!$link) {
die('mysqli_init failed');
}
if (!mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('A configuração MYSQLI_INIT_COMMAND falhou');
}
if (!mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('A configuração MYSQLI_OPT_CONNECT_TIMEOUT falhou');
}
if (!mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'my_db')) {
die('Erro de conexão (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Sucesso... ' . mysqli_get_host_info($link) . "\n";
mysqli_close($link);
?>
Os exemplos acima irão imprimir:
Sucesso... Informações do host MySQL: localhost via TCP/IP
Nota:
MySQLnd sempre assume o charset padrão do banco de dados. Este charset é enviado durante a criação da conexão, e o mysqlnd usará a partir daí.
Libmysql utiliza o charset padrão configurado no arquivo my.cnf ou por uma chamada a mysqli_options() anterior a chamada de mysqli_real_connect() e depois de mysqli_init().
Notice that when using "localhost" as hostname the port option might be ignored.
If you wish to connect thru a different port than default, substitute "127.0.0.1" for localhost.
this is because it tries to use sockets with the string localhost this is documented en known