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

Erro fatal mysqli_connect:require()


Dois MAIORES problemas com seu código e sua "solução":
  1. Você tem @ operador em todos os lugares. Para o qual você tem -1 voto para sua pergunta. @ operador é o próprio mal. A TI é responsável pela página em branco que você vê.
  2. No entanto, o remédio que você escolheu piorou as coisas. Essa coisa de "OU morrer" não é um canto mágico para resolver qualquer problema de relatório de erros. E usado incorretamente causará erros como um que você tem. Para o qual você tem 1 na mensagem de erro.

Em primeiro lugar, sua inclusão está correta, então, deixe-a em paz.

Para obter um erro do mysqli, siga estas instruções:

Em vez de adicionar "ou morrer" aleatoriamente, você precisa de uma solução de relatório de erros mais robusta e útil.

Se você estiver usando mysqli_query() em todo o código do aplicativo sem encapsulá-lo em alguma classe auxiliar, trigger_error() é uma boa maneira de gerar um erro PHP, pois também informará o arquivo e o número da linha onde ocorreu o erro
$res = mysqli_query($mysqli,$query) or trigger_error(mysqli_error($mysqli)."[$query]");

em todos os seus scripts
e desde então você será notificado do motivo, porque o objeto não foi criado.(Se você está curioso sobre isso or sintaxe, já expliquei aqui - também explica por que você tem (1) na mensagem de erro)

No entanto , se você estiver encapsulando sua consulta em alguma classe, arquivo e linha do erro do gatilho serão bastante inúteis, pois apontarão para a própria chamada, não para o código do aplicativo que causou determinado problema. Então, ao executar comandos mysqli encapsulados, outra maneira deve ser usada:
$result = $mysqli->query($sql);
if (!$result) {
    throw new Exception($mysqli->error." [$query]");
}

como Exception fornecerá a você um rastreamento de pilha , que o levará ao local de onde uma consulta incorreta foi chamada.

Observe que você deve ser capaz de ver erros de PHP em geral. Em um site ao vivo, você precisa espiar os logs de erros, portanto, as configurações devem ser
error_reporting(E_ALL);
ini_set('display_errors',0);
ini_set('log_errors',1);

enquanto em um servidor de desenvolvimento local não há problema em cometer erros na tela:
error_reporting(E_ALL);
ini_set('display_errors',1);

e é claro que você nunca deve usar o operador de supressão de erro (@) na frente de suas instruções.