J'essaie de faire une simple connexion avec XAMPP et le serveur MySQL, mais chaque fois que j'essaye de saisir des données ou de me connecter à la base de données, j'obtiens cette erreur.
Erreur fatale: Erreur non récupérée: appel de la fonction non définie mysql_connect () dans C:\xampp\htdocs\register.php: 22
Trace de pile: # 0 {main} renvoyée dans C:\xampp\htdocs\register.php à la ligne 22
Exemple de ligne 22:
$link = mysql_connect($mysql_hostname , $mysql_username);
Il est recommandé d'utiliser les extensions MySQLi ou PDO. Il n'est pas recommandé d'utiliser l'ancienne extension mysql pour les nouveaux développements, car elle était obsolète dans PHP 5.5.0 et supprimée dans PHP 7. .
PHP propose trois API différentes pour se connecter à MySQL. Ci-dessous, nous montrons les API fournies par les extensions mysql, mysqli et PDO. Chaque extrait de code crée une connexion à un serveur MySQL s'exécutant sur "exemple.com" en utilisant le nom d'utilisateur "username" et le mot de passe "password". Et une requête est lancée pour saluer l'utilisateur.
Exemple # 1 Comparaison des trois API MySQL
<?php
// mysqli
$mysqli = new mysqli("example.com", "username", "password", "database");
$result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);
// PDO
$pdo = new PDO('mysql:Host=example.com;dbname=database', 'username', 'password');
$statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);
// mysql
$c = mysql_connect("example.com", "username", "password");
mysql_select_db("database");
$result = mysql_query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = mysql_fetch_assoc($result);
echo htmlentities($row['_message']);
?>
Je vous suggère d'essayer à la fois MySQLi et PDO et de découvrir quelle conception d'API vous préférez.
Lire Choix d'une API et Pourquoi ne devrais-je pas utiliser les fonctions mysql_ * en PHP?
Comme d'autres réponses le suggèrent ... Un type (pour quelque raison que ce soit) a décidé que votre ancien code ne devrait pas fonctionner lorsque vous mettez à jour votre PHP, car il sait mieux que vous et ne se soucie pas de ce que fait votre code ou de sa simplicité. vous mettre à niveau.
Eh bien, si vous ne pouvez pas mettre à jour votre projet du jour au lendemain, vous pouvez
rétrograder votre version de PHP à la version qui a fonctionné
ou...
utilisez un shim (genre de polyfill) tel que https://github.com/dshafik/php7-mysql-shim ou https://github.com/dotpointer/mysql-shim , puis trouvez une place pour
include_once("choice_shim.php");
quelque part dans votre code
Cela gardera votre ancien code PHP opérationnel jusqu'à ce que vous ayez envie de mettre à jour ...
Les fonctions mysql_*
ont été supprimées dans PHP 7.
Vous avez maintenant deux alternatives: MySQLi et PDO .
Voici une comparaison avant (-) et après (+) de certaines modifications courantes apportées à MySQLi, prises directement dans du code fonctionnel:
-if (!$dbLink = mysql_connect($dbHost, $dbUser, $dbPass))
+if (!$dbLink = mysqli_connect($dbHost, $dbUser, $dbPass))
-if (!mysql_select_db($dbName, $dbLink))
+if (!mysqli_select_db($dbLink, $dbName))
-if (!$result = mysql_query($query, $dbLink)) {
+if (!$result = mysqli_query($dbLink, $query)) {
-while ($row = mysql_fetch_array( $result, MYSQL_ASSOC )) {
+while ($row = mysqli_fetch_array( $result, MYSQLI_ASSOC )) {
-mysql_close($dbLink);
+mysqli_close($dbLink);
Assurez-vous que vous n'avez pas commis de faute de frappe comme dans mon cas
msyql_fetch_assoc devrait être mysql