Solutions au Mysql_connect obsolète en PHP
-
Connectez-vous à MySQL à l’aide de la procédure
Mysqli_connect
- Connectez-vous à MySQL à l’aide de la programmation orientée objet
- Connectez-vous à MySQL à l’aide de PDO
Cet article vous apprendra les solutions au mysql_connect
obsolète en PHP. Ces solutions incluent mysqli_connect
(procédural et OOP) et PHP Data Objects (PDO).
Connectez-vous à MySQL à l’aide de la procédure Mysqli_connect
mysqli_connect
vous permet d’utiliser la programmation procédurale pour vous connecter à votre base de données MySQL. Par conséquent, vous pouvez utiliser l’algorithme suivant :
-
Définissez les détails de connexion à la base de données.
-
Connectez-vous avec
mysqli_connect
. -
S’il y a une connexion réussie, affichez un message de réussite.
-
En cas d’échec de la connexion, affichez un message d’erreur.
Cet algorithme fonctionne correctement jusqu’à ce qu’une erreur se produise à l’étape 2. Une telle erreur peut être un détail de base de données incorrect.
Lorsque PHP rencontre ces détails incorrects, il lève une exception Fatal Error
. Par conséquent, le code n’atteindra pas l’étape 3 ou l’étape 4, où vous afficherez un message d’erreur.
Pour remédier à cela, nous devons désactiver le rapport d’erreur MySQL et supprimer les avertissements. En faisant cela, lorsqu’une erreur se produit, vous empêcherez l’utilisateur de voir des détails sensibles et, en même temps, vous pourrez afficher un message d’erreur personnalisé.
Cela dit, voici l’algorithme modifié :
-
Définissez les détails de connexion à la base de données.
-
Désactivez le rapport d’erreur MySQL.
-
Connectez-vous avec
mysqli_connect
et supprimez les avertissements. -
S’il y a une connexion réussie, affichez un message de réussite.
-
En cas d’échec de la connexion, affichez un message d’erreur.
Voici l’implémentation de cet algorithme :
<?php
// The following are the defaults for a
// new MySQL installation. You should replace
// the $host, $mysql_user, and $mysql_user_password
// with your details.
$host = 'localhost';
$mysql_user = 'root';
$mysql_user_passowrd = '';
// Turn off error reports like "Fatal Errors".
// Such reports can contain too much sensitive
// information that no one should see. Also,
// turning off error reports allows us to handle
// connection error in an if/else statement.
mysqli_report(MYSQLI_REPORT_OFF);
// If there is an error in the connection string,
// PHP will produce a Warning message. For security
// and private reasons, it's best to suppress the
// warnings using the '@' sign
$connect_to_mysql = @mysqli_connect($host, $mysql_user, $mysql_user_passowrd);
if (!$connect_to_mysql) {
echo "<b style='color: red;'>Failed to connect to MySQL.</b>";
} else {
echo "You've made a successful connection to MySQL.";
}
?>
Sortie pour une connexion réussie :
You've made a successful connection to MySQL.
Sortie pour une connexion échouée :
<b style='color: red;'>Failed to connect to MySQL.</b>
Connectez-vous à MySQL à l’aide de la programmation orientée objet
Avec OOP et mysqli_connect
, vous pouvez créer une connexion à une base de données en utilisant new mysqli()
. Comme la technique procédurale, vous devez passer les détails de connexion à new mysqli()
.
Cependant, vous pouvez avoir des erreurs dans ces détails, nous utiliserons donc un bloc try...catch
pour la gestion des erreurs. Tout d’abord, nous placerons les détails de connexion dans le bloc try
, et si une erreur se produit, nous les intercepterons dans le bloc catch
.
Dans ce qui suit, la connexion à MySQL utilise la version OOP de mysqli_connect
. Vous remarquerez également que nous avons supprimé les erreurs dans la chaîne de connexion.
<?php
// The following are the defaults for a
// new MySQL installation. You should replace
// the $host, $mysql_user, and $mysql_user_password
// with your details.
$host = 'localhost';
$mysql_user = 'root';
$mysql_user_passowrd = '';
try {
// Connect to the database using the OOP style
// of mysqli.
$connection_string = @new mysqli($host, $mysql_user, $mysql_user_passowrd);
echo "You've made a successful connection to MySQL.";
} catch (Exception $e) {
// If an error occurs, access the getMessage()
// method of the $e object. This gives information
// on why the error occurred.
echo "<b style='color: red;'>Failed to connect to MySQL :</b> " . $e->getMessage();
}
?>
Sortie pour une connexion réussie :
You've made a successful connection to MySQL.
Sortie pour une connexion échouée :
<b style='color: red;'>Failed to connect to MySQL :</b> Access denied for user ''@'localhost' (using password: NO)
Connectez-vous à MySQL à l’aide de PDO
Vous pouvez vous connecter à MySQL en utilisant PDO, et vous devriez intercepter les erreurs en utilisant un bloc try... catch
. Ce dernier fonctionne de la même manière que vous avez appris dans la section POO.
De plus, votre utilisateur ne verra pas les messages d’erreur sensibles lorsqu’une erreur se produit. Maintenant, voici la version PDO pour se connecter à MySQL :
<?php
// The following are the defaults for a
// new MySQL installation. You should replace
// the $host, $mysql_user, and $mysql_user_password
// with your details.
$host = 'localhost';
$mysql_user = 'root';
$mysql_user_passowrd = '';
try {
// Connect to MySQL using PDO and set PDO
// error mode to exception.
$connection_string = @new PDO("mysql:host=$host", $mysql_user, $mysql_user_passowrd);
$connection_string->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "You've made a successful connection to MySQL.";
} catch (PDOException $e) {
// If an error occurs, access the getMessage()
// method of the $e object. This gives information
// on why the error occurred.
echo "<b style='color: red;'>Failed to connect to MySQL:</b> " . $e->getMessage();
}
?>
Sortie pour une connexion réussie :
You've made a successful connection to MySQL.
Sortie pour une connexion échouée :
Failed to connect to MySQL: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)
Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.
LinkedInArticle connexe - MySQL Database
- Trouver une valeur dans un ensemble dans la base de données MySQL
- Connecter une base de données MySQL distante à l'aide de la ligne de commande
- Optimiser les tables et les bases de données dans MySQL
- Rechercher des occurrences de chaîne dans la base de données MySQL
- Sélectionnez les N premières lignes dans MySQL