Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro de conexão PHP com o banco de dados


o mysqli_select_db função, ao usar a API procedural requer que você passe uma conexão real como primeiro parâmetro, como mostrado nas páginas man . Esta conexão, ou link, é o que mysqli_connect retorna, então você não deve ignorar o que mysqli_connect retorna , mas sim atribua-o a uma variável.
A assinatura da função informa claramente tudo isso, então, por favor, RTM . Aqui estão alguns exercícios de copiar e colar:
                            \/=============================|
bool mysqli_select_db ( mysqli $link , string $dbname )   ||
//returns bool         argument 1       argument 2        ||
mysqli mysqli_connect ([...])                             ||
//returns type mysqli  accepts vast number of arguments   ||
              //                                          ||
              |======== useful here =======================|

Isso significa que você terá que escrever:
$db = mysqli_connect('localhost', 'root', '');
mysqli_select_db($db, 'video_system');

Como o manual de assinatura &&, este mysqli_select_db retorna um bool. true significa que o banco de dados foi selecionado com sucesso, false indica falha. É melhor adquirir o hábito de verificar os valores de retorno da função . Por mais trivial que pareça. Então:
$db = mysqli_connect('localhost', 'root', '');
if (!mysqli_select_db($db, 'video_system'))
{//if return value is false, echo error message and exit script
    echo 'Failed to select db "video_system": ', mysqli_error($db), PHP_EOL;
    $db = null;//optional, but generally safer
    exit(1);//stop execution
}
//db selected, get to work here

Mas você pode facilmente omitir esta segunda chamada de função, passando o nome do banco de dados de escolha para o mysqli_connect função desde o início:
$db = mysqli_connect('127.0.0.1', 'root', '', 'video_system');

O que economiza a sobrecarga de uma chamada de função adicional, o que melhora um pouco o desempenho. Eu também mudei o localhost string para o endereço IP 127.0.0.1, o que também pode ajudar, porque usar o IP significa que a string não precisa ser resolvida para o endereço IP correspondente.
Em suma, acho melhor você gastar algum tempo lendo a documentação