Utilisation des extensions PHP MySQL (mysqlnd, mysqli, PDO) dans ServBay 
ServBay, puissant environnement de développement web local tout-en-un, simplifie grandement les interactions entre applications PHP et bases de données. Pour toutes les versions de PHP prises en charge, il installe et active par défaut les principales extensions MySQL : mysqlnd, mysqli et PDO_MySQL. Vous pouvez donc immédiatement utiliser MySQL ou MariaDB dans vos projets PHP, sans aucune configuration manuelle.
Extensions PHP MySQL disponibles dans ServBay 
ServBay intègre dans ses environnements PHP trois extensions MySQL majeures, assurant ainsi compatibilité et performance :
- Pilote natif MySQL (
mysqlnd) : Pilote natif PHP servant de base àmysqlietPDO_MySQL, il gère la communication avec les serveurs MySQL/MariaDB et se distingue par ses performances et sa gestion efficace de la mémoire. - MySQLi (
mysqli) : Extension améliorée pour MySQL offrant des interfaces objet et procédurale. Elle permet la connexion à MySQL/MariaDB et prend en charge des fonctionnalités avancées telles que les requêtes préparées, transactions, procédures stockées et requêtes multiples. - PDO MySQL (
PDO_MySQL) : Le pilote MySQL pour PDO (PHP Data Objects). PDO fournit une couche d'abstraction unifiée pour l'accès aux bases de données, ce qui permet d'utiliser le même API pour de multiples systèmes (MySQL, MariaDB, PostgreSQL, SQLite, etc.) et facilite la portabilité du code. 
Statut d’activation 
Sous ServBay, les extensions mysqlnd, mysqli et PDO_MySQL sont activées par défaut pour toutes les versions de PHP. Aucune action supplémentaire n'est requise pour les activer. ServBay configure automatiquement le php.ini afin que vous puissiez les utiliser immédiatement dans votre code pour vous connecter à vos bases de données.
Détail des extensions PHP MySQL 
Comprendre les différences entre ces trois extensions vous aidera à choisir la plus adaptée à votre projet :
Pilote natif MySQL (
mysqlnd)- Rôle principal : 
mysqlndest un pilote natif écrit en C, servant de couche de communication entre PHP et les serveurs MySQL/MariaDB. - Caractéristiques : Depuis PHP 5.3, 
mysqlndest la bibliothèque de base sous-jacente utilisée parmysqlietPDO_MySQL. Il est intégré nativement à PHP et ne nécessite plus de liaison avec la bibliothèque cliente externe MySQL (libmysqlclient). - Points forts : Par rapport à l’ancienne 
libmysqlclient,mysqlndoffre en général de meilleures performances, une gestion mémoire plus efficace, le support des requêtes asynchrones, des connexions persistantes optimisées et expose une API plugins riche. En général, vous interagissez avec ses bénéfices viamysqliouPDO, pas directement. 
- Rôle principal : 
 MySQLi (
mysqli)- Rôle principal : Extension conçue pour MySQL (version 4.1.3 et plus) et MariaDB.
 - Caractéristiques : Propose à la fois une interface orientée objet et une interface procédurale. Supporte les requêtes préparées (protection efficace contre les injections SQL), la gestion des transactions, les procédures stockées, et l’exécution de requêtes multiples.
 - Points forts : Riche en fonctionnalités et optimisée pour MySQL/MariaDB. Si votre projet ne concerne que ces bases et requiert des fonctions spécifiques avancées, 
mysqliest un choix robuste et performant. 
PDO MySQL (
PDO_MySQL)- Rôle principal : PHP Data Objects (PDO) fournit une interface légère et uniforme pour accéder à différents types de bases de données ; 
PDO_MySQLest son pilote spécifique MySQL/MariaDB. - Caractéristiques : Permet d’accéder à la BDD à travers une API unifiée (
PDO,PDOStatement). Implique l’utilisation obligatoire des requêtes préparées (prepare()etexecute()), ce qui est une bonne pratique pour la sécurité. Prise en charge de la gestion transactionnelle. - Points forts : Portabilité : le principal atout de PDO. Si vous ou vos clients envisagez de migrer vers d'autres systèmes (PostgreSQL, SQLite, etc.), PDO minimise les changements dans le code. L'interface orientée objet améliore la clarté et la sécurité du code ; pour les nouveaux projets, PDO est généralement recommandé.
 
- Rôle principal : PHP Data Objects (PDO) fournit une interface légère et uniforme pour accéder à différents types de bases de données ; 
 
Exemples de code PHP : connexion et manipulation de base de données 
Voici comment utiliser mysqli et PDO pour se connecter à une base de données (MariaDB ou MySQL) sous ServBay et y réaliser des opérations basiques.
Prérequis :
- Le service MySQL ou MariaDB doit être en fonctionnement sur ServBay.
 - Vous avez créé une base nommée 
servbay_db. - Un utilisateur 
servbay_usermuni du mot de passeyour_passworddispose des droits sur cette base. - La table 
usersexiste dansservbay_db, avec les colonnes :id(INT, PK, AI),name(VARCHAR),email(VARCHAR),age(INT). 
Servez-vous de phpMyAdmin intégré à ServBay ou de tout autre outil pour ces opérations.
Exemples (méthode mysqli) 
php
<?php
// --- Exemple mysqli ---
// Paramètres de connexion à la base de données
$servername = "127.0.0.1"; // ou 'localhost'
$port = 3306; // Port par défaut MySQL/MariaDB sous ServBay
$username = "servbay_user";
$password = "your_password"; // À remplacer par votre mot de passe réel
$dbname = "servbay_db";
// Création de la connexion mysqli (mode orienté objet)
$conn = new mysqli($servername, $username, $password, $dbname, $port);
// Vérification de la connexion
if ($conn->connect_error) {
    die("mysqli Connection failed: " . $conn->connect_error);
}
echo "mysqli Connected successfully<br>";
// Insertion de données (requête préparée pour éviter les injections SQL)
$stmt = $conn->prepare("INSERT INTO users (name, email, age) VALUES (?, ?, ?)");
$name = "ServBay Demo";
$email = "mysqli@servbay.demo";
$age = 5;
// "ssi" signifie string, string, integer
$stmt->bind_param("ssi", $name, $email, $age);
if ($stmt->execute()) {
    echo "mysqli: New record created successfully<br>";
} else {
    echo "mysqli Error: " . $stmt->error . "<br>";
}
$stmt->close();
// Sélection de données
$sql = "SELECT id, name, email, age FROM users WHERE name = 'ServBay Demo'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    echo "mysqli Queried data:<br>";
    // Affichage des résultats
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. " - Age: " . $row["age"]. "<br>";
    }
} else {
    echo "mysqli: 0 results found<br>";
}
// Fermeture de la connexion
$conn->close();
?>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Exemples (méthode PDO) 
php
<?php
// --- Exemple PDO ---
// Paramètres de connexion à la base de données
$host = '127.0.0.1'; // ou 'localhost'
$port = 3306; // Port par défaut MySQL/MariaDB sous ServBay
$dbname = 'servbay_db';
$username = 'servbay_user';
$password = 'your_password'; // À remplacer par votre mot de passe réel
$charset = 'utf8mb4';
// DSN (Data Source Name)
$dsn = "mysql:host=$host;port=$port;dbname=$dbname;charset=$charset";
// Options de connexion PDO
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION, // Lever une exception plutôt qu'un avertissement
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,       // Retourner par défaut des tableaux associatifs
    PDO::ATTR_EMULATE_PREPARES   => false,                  // Utiliser les requêtes préparées natives
];
try {
    // Création de l'instance PDO
    $pdo = new PDO($dsn, $username, $password, $options);
    echo "PDO Connected successfully<br>";
    // Insertion de données (requête préparée)
    $sql = "INSERT INTO users (name, email, age) VALUES (:name, :email, :age)";
    $stmt = $pdo->prepare($sql);
    $name = 'ServBay PDO Demo';
    $email = 'pdo@servbay.demo';
    $age = 10;
    // Liaison des paramètres et exécution
    $stmt->execute([
        ':name' => $name,
        ':email' => $email,
        ':age' => $age
    ]);
    echo "PDO: New record created successfully<br>";
    // Sélection de données
    $stmt = $pdo->prepare("SELECT id, name, email, age FROM users WHERE name = :name");
    $stmt->execute([':name' => 'ServBay PDO Demo']);
    // Récupération de tous les résultats
    $users = $stmt->fetchAll(); // Par défaut FETCH_ASSOC
    if ($users) {
        echo "PDO Queried data:<br>";
        foreach ($users as $row) {
            echo "id: " . $row['id'] . " - Name: " . $row['name'] . " - Email: " . $row['email'] . " - Age: " . $row['age'] . "<br>";
        }
    } else {
        echo "PDO: 0 results found<br>";
    }
} catch (\PDOException $e) {
    // Capture et affichage des erreurs de connexion ou de requête
    throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
// La connexion PDO est habituellement fermée automatiquement à la fin du script
// $pdo = null; // Optionnel : assigner null pour forcer la fermeture
?>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Mise en place du code : Enregistrez l’un des exemples ci-dessus en tant que fichier .php (ex : db_test_mysqli.php ou db_test_pdo.php) et déposez-le dans le dossier racine de votre site ServBay (ex : /Applications/ServBay/www/monprojet/). Accédez-y ensuite via votre navigateur à l’adresse (ex : http://monprojet.servbay.demo/db_test_mysqli.php). Veillez à ce que votre site soit correctement configuré et en marche dans ServBay.
Foire Aux Questions (FAQ) 
Q : Dois-je installer manuellement les extensions MySQL de PHP dans ServBay ?
R : Non. ServBay a déjà préinstallé et activé par défaut les trois extensions essentielles (mysqlnd, mysqli et PDO_MySQL) pour toutes les versions de PHP. Vous pouvez les utiliser directement dans votre code PHP, sans aucune installation ou configuration complémentaire.
Q : Dois-je préférer mysqli ou PDO ?
R :
- Privilégiez 
PDO: Si votre application doit pouvoir changer de base de données (pas seulement MySQL/MariaDB), ou si vous voulez un code moderne, orienté objet et portable, PDO est à privilégier. Les requêtes préparées sont obligatoires, ce qui améliore la sécurité. - Utilisez 
mysqlidans certains cas : Si votre projet reste exclusivement sur MySQL/MariaDB et que vous exploitez des fonctionnalités avancées spécifiques à ces systèmes,mysqliest un choix puissant et performant, offrant les deux styles de programmation (objet/procédural). 
Pour tout nouveau projet, l’usage de PDO est généralement recommandé.
Q : Comment trouver les paramètres de connexion à MySQL/MariaDB sous ServBay ?
R :
- Hôte (Host) : Généralement 
127.0.0.1oulocalhost. - Port : Le port par défaut est 
3306. Vérifiez le numéro précis dans la gestion des paquets ServBay si nécessaire. - Utilisateur / Mot de passe : Créez l'utilisateur dans MySQL/MariaDB, ou éventuellement utilisez 
root(jamais en production). La gestion des utilisateurs et droits se gère efficacement via phpMyAdmin intégré ou tout autre outil dédié. - Nom de la base : Indiquez le nom de la base à laquelle vous souhaitez vous connecter.
 
Q : Mon vieux projet utilise des fonctions mysql_* dépréciées. Est-ce supporté par ServBay ?
R : Oui. Pour faciliter la maintenance ou la migration de projets anciens, ServBay intègre le support des anciennes fonctions mysql_* (ex : mysql_connect) dans PHP 5.6. Ces fonctions ont été dépréciées depuis PHP 5.5 et supprimées en PHP 7.0. Grâce à PHP 5.6 via ServBay, vous pouvez faire tourner du code legacy sans chercher une version PHP encore plus ancienne.
Néanmoins, il est vivement recommandé de :
- Réserver ce recours à la compatibilité temporaire ou la maintenance d’applications héritées.
 - Pour tout nouveau projet ou lors de la refonte d’un ancien code, de migrer impérativement vers les extensions modernes et sécurisées 
mysqliouPDO. Les fonctionsmysql_*posent des risques de sécurité (notamment à cause des attaques d'injection SQL) et n’incluent pas les fonctionnalités récentes des bases de données. 
Conclusion 
Grâce à l’activation par défaut de mysqlnd, mysqli et PDO_MySQL pour toutes les versions de PHP, ainsi qu’au support des fonctions mysql_* pour PHP 5.6, ServBay simplifie radicalement la gestion des bases de données pour les développeurs PHP. Oubliez la complexité de l’installation et de la configuration des extensions, choisissez simplement l’extension la mieux adaptée à votre projet (PDO ou mysqli étant recommandés) et connectez-vous sans difficulté à vos bases MySQL ou MariaDB sous ServBay.
Cette expérience « prête à l’emploi » vous permet de vous concentrer sur la logique métier de vos applications, tout en profitant d’un environnement local stable et performant, idéal pour concevoir, tester et maintenir vos services web rapidement.
