Qu'est-ce qu'une API?
<?php // ***************************************************************** // API : mysql // !!! ATTENTION : API obsolète !!! // // ***************************************************************** $link = mysql_connect("example.com", "user", "password"); $db = mysql_select_db("database",$link); $result = mysql_query("SELECT Name as nameCity FROM City",$link); $row = mysql_fetch_assoc($result); echo $row['nameCity']; // ***************************************************************** // API : mysqli // API utilisée dans le cadre du cours // (en style procédural) // // ***************************************************************** // mysqli : style procédural $link = mysqli_connect("example.com", "user", "password", "database"); $result = mysqli_query($link, "SELECT Name as nameCity FROM City"); $row = mysqli_fetch_assoc($result); echo $row['nameCity'] ; // mysqli : style objet $mysqli = new mysqli("example.com", "user", "password", "database"); $result = $mysqli->query("SELECT Name as nameCity FROM City"); $row = $result->fetch_assoc(); echo $row['nameCity'] ; // ***************************************************************** // API : PDO // ***************************************************************** $pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password'); $statement = $pdo->query("SELECT Name as nameCity FROM City"); $row = $statement->fetch(PDO::FETCH_ASSOC); echo $row['nameCity']; ?>
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.
L'interface orientée objet
En plus de l'interface procédurale, les utilisateurs peuvent choisir d'utiliser l'interface orientée objet.
Il n'y a pas de différence significative d'un point de vue performance entre les deux interfaces. Les utilisateurs peuvent faire leur choix que d'un point de vue personnel.
Mixage des styles
Il est possible de passer d'un style à un autre à tout moment bien que ce ne soit pas recommandé pour des raisons de clareté et de style de codage.
<?php // ***************************************************************** // ***************************************************************** // mysqli : interface PROCEDURALE // ***************************************************************** // ***************************************************************** $link = mysqli_connect("example.com", "user", "password", "database"); if (mysqli_connect_errno($link)) { echo "Echec lors de la connexion à MySQL : " . mysqli_connect_error(); } else { $result = mysqli_query($link, "SELECT message AS msg FROM annonce where id=1"); $row = mysqli_fetch_assoc($result); echo $row['msg']; mysqli_close($link); } ?>
<?php // ***************************************************************** // ***************************************************************** // mysqli : orienté objet // ***************************************************************** // ***************************************************************** $mysqli = new mysqli("example.com", "user", "password", "database"); if ($mysqli->connect_errno) { echo "Echec lors de la connexion à MySQL : " . $mysqli->connect_error; } else { $result = $mysqli->query("SELECT message AS msg FROM annonce where id=1"); $row = $result->fetch_assoc(); echo $row['msg'] ; $mysqli->close(); } ?>