Conversion vers MySQLi
Bonjour,
J'ai un code php5 (hébergé chez free) que je dois convertir en php8, car ne fonctionne plus. Je commence par le code de connexion à la bd:
$link = mysql_connect ($host,$user,$pass) or die (); mysql_select_db($db);
donne :
$link = mysqli_connect($host, $user, $pass, $db);
// Vérification de la connexion
if (!$link) {
die("Échec de la connexion : " . mysqli_connect_error());
}
J'ai l'erreur :
Fatal error: Call to undefined function: mysqli_connect()
Pourquoi ?? Et comment y remédier ?
- Merci
3 réponses
-
Modérateur
Bonjour,
As-tu vérifié la version php active sur ton site ?
Sur un des miens je suis en PHP Version 5.6.40, pas 8.5 donc cela dépend des serveurs. Et aussi du .htaccess où sur free on peut sélectionner la version choisie.
Dans le .htaccess j'ai un ancien paramètre
# Activer le php5 sur free.fr (php4 par defaut)
php 5Sur un site sans le .htaccess je suis en PHP Version 4.4.3-dev. Et j'ai essayé de mettre php 8, je reste en 5.
Pour afficher la version mettre un fichier comme info.php contenant <?php phpinfo(); ?> et le lancer à la main.
Les migrations sont peut être en cours. Free a toujours été très mauvais sur la communication. J'ai 2 sites plus accessibles, ni en ftp, ni avec un navigateur.
-
Après ma tentative de passer à php8 (mysql en mysqli), j'ai voulu revenir en arrière. Comme je n'avais pas changé grand chose, pas trop de boulot.
Mais là, plus rien de ma base ne s'affiche, même sur la page d'accueil !??? Que le html .............. Sur cette page, je met un petit texte de présentation, puis j'affiche le nombre d'individus per nom que j'ai dans ma base ...........
Voici mon code de connexion à la bd :
<?php // information pour la connection à le DB $host = 'sql.free.fr'; $host = 'sql.free.fr'; $user = 'genfamille'; $pass = '......'; $db = 'genfamille'; $link = mysql_connect ($host,$user,$pass) or die (); mysql_select_db($db); ?>
Ma page d'accueil :
<center><br><br> Ce site présente une généalogie des branches <b>HUMBERT, DAMERON ,DAQUIN</b> et <b>MALFOI</b> <br>Pour raison de confidentialité, ne seront présentés que les années de naissance < année actuelle - 110.<p> Le nom <b>DAQUIN</b> était écrit <b>DACQUIN</b> ou <b>D'ACQUIN</b> jusqu'au milieu du XVIII° siècle.<br> Le nom <b>MALFOI</b> était écrit <b>MALFOY</b> jusqu'au milieu du XIX° siècle. <BR><BR><BR> Cette généalogie se compose de : <?php include ('connexion/connexion.php'); //$host = 'localhost'; //$user = 'root'; //$pass = ''; //$db = 'gen_famille'; //$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); //mysql_select_db($db) or die ('Erreur :'.mysql_error()); $date = date("Y"); $date2 = $date-110; $query = 'SELECT count(id) FROM individus WHERE (SUBSTRING(date_naissance, -4) < "'.$date2.'" )'; $result = mysql_query($query) or die (mysql_error()); $resultat=mysql_fetch_row($result); echo "$resultat[0] individus<p>dont<br>"; $query2 = 'SELECT count(id), MIN(RIGHT(date_naissance, 4)) AS date FROM individus WHERE famille LIKE "%HUMBERT%" AND (SUBSTRING(date_naissance, -4) < "'.$date2.'" )'; $result2 = mysql_query($query2) or die (mysql_error()); $resultat2=mysql_fetch_row($result2); $row2 = mysql_fetch_array($result2); echo "$resultat2[0] individus dans la branche HUMBERT<br>"; echo ''.$row2['date'].''; $query3 = 'SELECT count(id) from individus WHERE famille LIKE "%DAMERON%" AND (SUBSTRING(date_naissance, -4) < "'.$date2.'" )'; $result3 = mysql_query($query3) or die (mysql_error()); $resultat3=mysql_fetch_row($result3); echo "$resultat3[0] individus dans la branche DAMERON<br>"; $query4 = 'SELECT count(id) from individus WHERE famille LIKE "%DAQUIN%" AND (SUBSTRING(date_naissance, -4) < "'.$date2.'" )'; $result4 = mysql_query($query4) or die (mysql_error()); $resultat4=mysql_fetch_row($result4); echo "$resultat4[0] individus dans la branche DAQUIN<br>"; $query5 = 'SELECT count(id) from individus WHERE famille LIKE "%MALFOI%" AND (SUBSTRING(date_naissance, -4) < "'.$date2.'" )'; $result5 = mysql_query($query5) or die (mysql_error()); $resultat5=mysql_fetch_row($result5); echo "$resultat5[0] individus dans la branche MALFOI<br>"; ?> Elle a été préparée et éditée par : <p>Thierry HUMBERT <br> N'hésitez pas à me contacter ..... <div class="contact-img"><a href="contact.htm" target="cadre2"><img src="images/lettre.ico" border="0" width="42"></a></div> <p></p> Retrouvez l'ensemble des données à l'aide des menus situés dans la barre du haut.<p> <font size=1>Localité de FLEZ-CUZY (58), pas d’acte disponible en ligne de 1693 à 1698, 1700, et 1711 à 1738.</font> <BR><BR> </center>J'ai également une sauvegarde de mes scripts à la maison. J'ai tenté de les remettre en place, mais rien !? Cela peut-il venir du serveur de Free ???
-
Bonjour,
Est-ce que mysqli est bien installé ?
https://stackoverflow.com/questions/25281467/fatal-error-call-to-undefined-function-mysqli-connect