Deux PLUS GROS problèmes avec votre code et votre "solution" :
- Vous avez
@
opérateur partout. Pour lequel vous avez -1 voix à votre question.@
l'opérateur est le mal lui-même. Le service informatique est responsable de la page vierge que vous voyez. - Cependant, le remède que vous avez choisi a aggravé les choses. Cette chose "OU mourir" n'est pas un chant magique pour résoudre tout problème de rapport d'erreur. Et une utilisation incorrecte entraînera des erreurs comme celui que vous avez. Pour lequel vous avez
1
dans le message d'erreur.
Tout d'abord, votre inclusion est correcte, alors laissez-la tranquille.
Alors que pour obtenir une erreur de mysqli, suivez ces instructions :
Au lieu d'ajouter "ou mourir" au hasard, vous avez besoin d'une solution de signalement d'erreurs plus robuste et plus utile.
Si vous utilisez mysqli_query() partout dans le code de l'application sans l'encapsuler dans une classe d'assistance, trigger_error()
est un bon moyen de générer une erreur PHP, car il vous indiquera également le fichier et le numéro de ligne où l'erreur s'est produite
$res = mysqli_query($mysqli,$query) or trigger_error(mysqli_error($mysqli)."[$query]");
dans tous vos scripts
et depuis lors, vous serez informé de la raison pour laquelle l'objet n'a pas été créé.(Si vous êtes curieux de savoir ce or
syntaxe, Je l'ai expliqué ici
- il explique également pourquoi vous avez (1)
dans le message d'erreur)
Cependant , si vous encapsulez votre requête dans une classe, un fichier et une ligne à partir d'une erreur de déclenchement seront tout à fait inutiles car ils pointeront vers l'appel lui-même, et non vers le code de l'application qui a causé certains problèmes. Ainsi, lors de l'exécution de commandes mysqli encapsulées, une autre méthode doit être utilisée :
$result = $mysqli->query($sql);
if (!$result) {
throw new Exception($mysqli->error." [$query]");
}
as Exception vous fournira une trace de pile , qui vous mènera à l'endroit d'où une requête erronée a été appelée.
Notez que vous devez être capable de voir les erreurs PHP en général. Sur un site en ligne, vous devez consulter les journaux d'erreurs, donc les paramètres doivent être
error_reporting(E_ALL);
ini_set('display_errors',0);
ini_set('log_errors',1);
alors que sur un serveur de développement local c'est normal de faire des erreurs à l'écran :
error_reporting(E_ALL);
ini_set('display_errors',1);
et bien sûr, vous ne devriez jamais utiliser l'opérateur de suppression d'erreurs (@) devant vos instructions.