Interface procédurale et orientée objet

L'extension mysqli fournit 2 interfaces. Elle supporte la programmation procédurale mais aussi, la programmation orientée objet.

Les utilisateurs migrants depuis l'ancienne extension mysql préfèreront l'interface procédurale. Cette interface est similaire à celle utilisée par l'ancienne extension mysql. Dans la plupart des cas, les noms de fonctions ne diffèrent que par leurs préfixes. Quelques fonctions mysqli prennent un gestionnaire de connexion comme premier argument, alors que la fonction correspondante de l'ancienne interface mysql le prennait comme argument optionnel en dernière position.

Exemple #1 Migration facile depuis l'ancienne extension mysql

<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
$res = mysqli_query($mysqli, "SELECT 'Please, do not use ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($res);
echo $row['_msg'];

$mysql = mysql_connect("localhost", "root", "");
mysql_select_db("test");
$res = mysql_query("SELECT 'the mysql extension for new developments.' AS _msg FROM DUAL", $mysql);
$row = mysql_fetch_assoc($res);
echo $row['_msg'];
?>
<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
if (mysqli_connect_errno($mysqli)) {
	echo "Echec lors de la connexion à MySQL : " . mysqli_connect_error();
}

$res = mysqli_query($mysqli, "SELECT 'A world full of ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($res);
echo $row['_msg'];

$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
	echo "Echec lors de la connexion à MySQL : " . $mysqli->connect_error;
}

$res = $mysqli->query("SELECT 'choices to please everybody.' AS _msg FROM DUAL");
$row = $res->fetch_assoc();
echo $row['_msg'];
?>
<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
	echo "Echec lors de la connexion à MySQL : " . $mysqli->connect_error;
}

$res = mysqli_query($mysqli, "SELECT 'Possible but bad style.' AS _msg FROM DUAL");
if (!$res) {
	echo "Echec lors de l'exécution de la requête : (" . $mysqli->errno . ") " . $mysqli->error;
}

if ($row = $res->fetch_assoc()) {
	echo $row['_msg'];
}
?>

L'exemple ci-dessus va afficher :

Possible but bad style.

Voir aussi

LoadingChargement en cours