If you get an error like
Can't connect to MySQL server on 'localhost' (10061)
and you use named pipes/socket connections (or aren't sure how you installed the MySQL server) try the following connect command:
<?php
mysqli_connect('.', $user_name, $password, $database_name, null, 'mysql');
?>
The '.' as hostname is absolutely necessary when using named pipes. 'localhost' won't work. 'mysql' is the standard name for the pipe/socket.
mysqli_connect
mysqli()
(PHP 5)
mysqli_connect -- mysqli() — Abre uma nova conexão com o servidor MySQL
Descrição
Estilo de procedimento
Estilo orientado a objeto (construtor):
A função mysqli_connect() tenta abrir uma conexão com o servidor MySQL que esteja rodando em host o qual pode ser um nome de servidor ou um endereço IP. Passando NULL ou a string "localhost" para este parâmetro, é assumido o servidor local. Quando possível, serão usados pipes ao invés do protocolo TCP/IP. Se for bem sucedida, a função mysqli_connect() irá retornar um objeto representando a conexão com o banco de dados, ou FALSE em caso de falha.
Os parâmetros username e password especificam o nome de usuário e a senha para usar ao conectar com o servidor MySQL. Se a senha não for dada (é passado o valor NULL), the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not).
Se for dao o parâmetro dbname , irá especificar o banco de dados padrão a ser usado ao se executar consultas.
Os parâmetros port e socket são usados em conjunto com o parâmetro host para maior controle de como conectar com o servidor de banc de dados. O parâmetro port especifica o número da porta a ser usada ao tentar conectar com o servidor MySQL, enquanto o parâmetro socket especifica um socket ou named pipe que deve ser usado.
Nota: especificar o parâmetro socket não irá determinar explicitamente o tipo de conexão a ser usada ao conectar com o servidor MySQL. Como a conexão é feita com o banco de dados MySQL é determinada pelo parâmetro host .
Valores de retorno
Retorna um objeto que representa a conexão com o servidor MySQL ou FALSE se a conexão falhar.
Exemplo
Exemplo #1 Estilo orientado a objeto
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
printf("Host information: %s\n", $mysqli->host_info);
/* close connection */
$mysqli->close();
?>
Exemplo #2 Estilo de procedimento
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* check connection */
if (!$link) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
printf("Host information: %s\n", mysqli_get_host_info($link));
/* close connection */
mysqli_close($link);
?>
Os exemplos acimas devem produzir a seguinte saída:
Host information: Localhost via UNIX socket
mysqli_connect
14-Sep-2009 12:37
26-Sep-2008 05:14
If you have error like "Trying to clone an uncloneable object of class..." when trying connect, add record
php_value zend.ze1_compatibility_mode 0
in your .htaccess file. This resolve connection problem.
28-Jan-2008 12:52
To specify charset in my.cnf file you just have to add
skip-character-set-client-handshake directive after
[mysqld]
default-character-set=utf8
