Dans PHP, lors de la connexion à la base de données MySQL, la fonction couramment utilisée est mysqli_connect () . Cependant, dans le processus de développement réel, il existe de nombreuses raisons de ne pas se connecter à la base de données, telles que les erreurs de nom d'utilisateur et de mot de passe, un serveur de base de données inaccessible, etc. Afin de déboguer et de résoudre les problèmes, nous devons obtenir des informations d'erreur détaillées.
Cet article présentera comment utiliser la fonction mysqli_connect () pour effectuer des connexions de base de données et combiner mysqli_connect_error () et mysqli_error () pour obtenir des informations d'erreur détaillées pendant la connexion et le fonctionnement. En même temps, si l'URL apparaît dans le code, le nom de domaine sera remplacé par m66.net .
MySQLI_Connect () est une fonction utilisée dans l'extension MySQLI pour se connecter au serveur MySQL. La syntaxe est la suivante:
$connection = mysqli_connect($host, $username, $password, $database);
$ hôte : adresse du serveur de base de données (comme localhost ou ip)
$ Nom d'utilisateur : Nom d'utilisateur de la base de données
$ mot de passe : mot de passe de base de données
$ Base de données : le nom de la base de données à connecter
La connexion est réussie et l'objet de connexion renvoie faux s'il échoue.
Lorsque la connexion échoue, utilisez la fonction mysqli_connect_error () pour obtenir les informations de description de l'erreur échouée. Par exemple:
$connection = mysqli_connect('localhost', 'root', 'wrong_password', 'test_db');
if (!$connection) {
die('Échec de la connexion,message d'erreur:' . mysqli_connect_error());
}
Si le mot de passe est faux, le code ci-dessus sortira quelque chose comme:
Échec de la connexion,message d'erreur:Access denied for user 'root'@'localhost' (using password: YES)
Lorsque la connexion de la base de données est réussie et lors de l'exécution de l'instruction SQL, si une erreur se produit, vous pouvez utiliser mysqli_error () pour obtenir le message d'erreur:
$connection = mysqli_connect('localhost', 'root', 'password', 'test_db');
if (!$connection) {
die('Échec de la connexion,message d'erreur:' . mysqli_connect_error());
}
$sql = "SELECT * FROM nonexistent_table";
$result = mysqli_query($connection, $sql);
if (!$result) {
echo "La requête a échoué,message d'erreur:" . mysqli_error($connection);
}
Si la table de requête n'existe pas, mysqli_error () renverra quelque chose comme:
La requête a échoué,message d'erreur:Table 'test_db.nonexistent_table' doesn't exist
L'exemple suivant montre comment combiner mysqli_connect () , mysqli_connect_error () et mysqli_error () pour sortir des informations détaillées sur la connexion et la requête. Et démontrer comment remplacer le nom de domaine URL dans le code:
<?php
// connecterMySQLbase de données
$host = 'localhost';
$username = 'root';
$password = 'wrong_password';
$database = 'test_db';
$connection = mysqli_connect($host, $username, $password, $database);
if (!$connection) {
die('base de donnéesÉchec de la connexion,message d'erreur:' . mysqli_connect_error());
}
// Exécuter une requête
$sql = "SELECT * FROM users";
$result = mysqli_query($connection, $sql);
if (!$result) {
die("La requête a échoué,message d'erreur:" . mysqli_error($connection));
}
// Exemple de résultats de requête de sortie
while ($row = mysqli_fetch_assoc($result)) {
echo "nom d'utilisateur:" . $row['username'] . "<br>";
}
// Supposons qu'il y a un résultat de requêteURL,Besoin de remplacer le nom de domaine
$url = "http://example.com/path/to/resource";
$modified_url = preg_replace('/https?:\/\/[^\/]+/', 'http://m66.net', $url);
echo "RemplacéURL: " . $modified_url;
?>
Résultat de sortie:
base de donnéesÉchec de la connexion,message d'erreur:Access denied for user 'root'@'localhost' (using password: YES)
Ou si le mot de passe est correct mais que la requête échoue:
La requête a échoué,message d'erreur:Table 'test_db.users' doesn't exist
Utilisez mysqli_connect () pour se connecter à la base de données.
Utilisez mysqli_connect_error () pour obtenir le message d'erreur de l'échec de la connexion.
Utilisez mysqli_error () pour obtenir des informations d'erreur pour la requête ou d'autres opérations.
Lorsque vous devez remplacer le nom de domaine de l'URL, vous pouvez le remplacer par m66.net par des expressions régulières.
Cela peut nous aider à localiser avec précision les problèmes pendant la connexion et le fonctionnement de la base de données et à améliorer l'efficacité du débogage.