MySQLi
L'extension PHP MySQLi
Pourquoi utiliser MySQLi?
Source: le blog de Pascal MartinHistoriquement, c'est l'extension ext/mysql qui est utilisée pour accéder, depuis PHP, à une base de données MySQL : c'est elle qui fournit l’ensemble des fonctions mysql_*() comme msqyl_connect(), mysql_query(), mysql_real_escape_string() etc...
Cette extension ext/mysql a été introduite dès PHP 2.0. C'est une des plus anciennes extensions fournies par PHP et nous l'avons probablement tous utilisé un jour ou l'autre.
Cependant, cela fait plusieurs années que ext/mysql n'est plus en développement actif à part quelque correctifs de sécurité. Cette extension n'est donc pas recommandé pour écrire du nouveau code. A la place il est conseillé d'utiliser, soit l'extension PDO, soit l'extension MySQLi.
Configuration et utilisation de l'extention PHP MySQLi
<?php
// déclarations de base
$user = "root";
$pass = "mysql";
$base = "mabase";
$serveur = "localhost"; //ou "127.0.0.1"
// Connexion en orienté objet :
$mysqli = new mysqli($serveur, $user, $pass, $base);
// Connexion en procédural :
$mysqli = mysqli_connect($serveur, $user, $pass, $base);
// Affichage en orienté objet :
$resultat = $mysqli->query("SELECT nom_client FROM matable");
$ligne = $resultat->fetch_assoc();
echo htmlentities($ligne['nom_client']);
// Affichage en procédural :
$requete="SELECT nom_client FROM matable";
$resultat=mysqli_query($mysqli,$requete);
$ligne = mysqli_fetch_assoc($resultat);
echo htmlentities($ligne['nom_client']);
?>
// déclarations de base
$user = "root";
$pass = "mysql";
$base = "mabase";
$serveur = "localhost"; //ou "127.0.0.1"
// Connexion en orienté objet :
$mysqli = new mysqli($serveur, $user, $pass, $base);
// Connexion en procédural :
$mysqli = mysqli_connect($serveur, $user, $pass, $base);
// Affichage en orienté objet :
$resultat = $mysqli->query("SELECT nom_client FROM matable");
$ligne = $resultat->fetch_assoc();
echo htmlentities($ligne['nom_client']);
// Affichage en procédural :
$requete="SELECT nom_client FROM matable";
$resultat=mysqli_query($mysqli,$requete);
$ligne = mysqli_fetch_assoc($resultat);
echo htmlentities($ligne['nom_client']);
?>
Comme vous le voyez, la connexion au serveur ouvre aussi la connexion à la base de données, contrairement à l'extension mysql. Les données sont celles que vous utilisiez déjà avec mysql, rien de complexe.
Fermer la base en MySQLi
En procédural :
mysqli_close($mysqli);
En orienté objet :
$mysqli->close();