Comment changer MySQL en MySQLi
P粉124070451
2023-07-27 23:56:06
<p> y($sql);更改为mysqli_query($sql) );,是这样简单吗?</p><p><strong><code></code><code></code></strong></p>
<pre class="brush:php;toolbar:false;"><?PHP
//dans mon fichier d'en-tête qui est inclus sur chaque page, j'ai ceci
$DB["dbName"] = "e-mails";
$DB["hôte"] = "hôte local";
$DB["utilisateur"] = "racine";
$DB["pass"] = "";
$link = mysql_connect($DB['host'], $DB['user'], $DB['pass']) ou die("<center>Une erreur interne s'est produite. Veuillez signaler l'erreur suivante au webmaster .<br><br>".mysql_error()."'</center>");
mysql_select_db($DB['dbName']);
// fin de la partie de connexion de l'en-tête
// fonction à partir d'un fichier de fonctions dans lequel j'exécute une requête mysql dans n'importe quelle page.
fonction exécuterQuery($sql) {
$result = mysql_query($sql);
si (mysql_error()) {
$error = '<BR><center><font size="+1" face="arial" color="red">Une erreur interne s'est produite.<BR> L'erreur a été enregistrée pour révision</font></center><br>';
si ($_SESSION['auto_id'] == 1) {
$sql_formatted = highlight_string(stripslashes($sql), true);
$error .= '<b>La syntaxe MySQL utilisée</b><br>' . $sql_formatted . '<br><br><b>L'erreur MySQL renvoyée</b><br>' . mysql_error();
}
mourir($erreur);
}
renvoie $résultat ;
}
// exemple de requête exécutée sur n'importe quelle page du site à l'aide de la fonctionexecuteQuery
$sql='SELECT auto_id FROM ami_reg_user WHERE auto_id=' .$info['auto_id'];
$result_member=executequery($sql);
si($line_member=mysql_fetch_array($result_member)){
extraire($line_member);
} autre {
header("emplacement : index.php");
sortie;
}
?>≪/pré>
<p><br /></p>
(Je me rends compte que c'est une vieille question, mais elle revient encore souvent...)
Si vous remplacez mysql_* par mysqli_*, rappelez-vous que de nombreuses fonctions mysqli_* nécessitent de passer une connexion à une base de données.
Par exemple :
est devenu :
Cela dit, de nombreuses vérifications sont nécessaires.
Tout d'abord, vous devrez peut-être remplacer chaque appel de fonction mysql_* par sa fonction mysqli_* correspondante, au moins si vous souhaitez utiliser l'API procédurale - ce sera plus simple étant donné que vous disposez déjà d'un code basé sur la méthode API MySQL car le L'API MySQL est procédurale.
Pour vous aider, le résumé des fonctions de l'extension MySQLi vous sera sans aucun doute très utile.
Par exemple :
mysql_connect将被替换为mysqli_connect。
mysql_error将根据上下文被替换为mysqli_error和/或mysqli_connect_error。
mysql_query将被替换为mysqli_query。
REMARQUE : Pour certaines fonctions, vous devrez peut-être vérifier les paramètres : il peut y avoir de légères différences, mais je dirais pas grand-chose : mysql et mysqli sont basés sur la même bibliothèque (libmysql ; au moins pour PHP
Par exemple :
Après avoir terminé ces étapes, essayez d'exécuter la nouvelle version de votre script... et vérifiez si tout fonctionne sinon... il est temps de trouver le bug ;-)