Ce didacticiel démontre les opérations CRUD (créer, lire, mettre à jour, supprimer) à l'aide de PHP et MySQL. C'est un excellent point de départ pour la connectivité de la base de données d'apprentissage des développeurs PHP, une compétence cruciale pour toute application Web. Nous nous concentrerons sur les fonctions Core mysqli
pour la simplicité.
La connectivité de la base de données est fondamentale pour la plupart des applications Web, car les bases de données stockent les données d'application. Ce guide suppose une installation PHP et MySQL fonctionnelle avec l'extension mysqli
activée. Vous pouvez le vérifier en utilisant phpinfo()
(recherchez la section "MySQLI") ou l'outil de ligne de commande: php -m
. La sortie doit lister mysqli
si elle est activée.
Couvrons:
Connexion de la base de données:
Nous utiliserons l'approche procédurale avec la fonction mysqli_connect
pour plus de clarté. La fonction prend quatre arguments:
$connection_obj = mysqli_connect("{MYSQL_HOSTNAME}", "{MYSQL_USERNAME}", "{MYSQL_PASSWORD}", "{MYSQL_DATABASE}"); var_dump($connection_obj);
{MYSQL_HOSTNAME}
: nom d'hôte ou IP de serveur MySQL (par exemple, localhost
, 127.0.0.1
). {MYSQL_USERNAME}
: nom d'utilisateur mysql (souvent root
). {MYSQL_PASSWORD}
: mot de passe mysql (souvent vide initialement). {MYSQL_DATABASE}
: le nom de la base de données. Une connexion réussie renvoie un objet de connexion. La gestion des erreurs est essentielle:
$connection_obj = mysqli_connect("{MYSQL_HOSTNAME}", "{MYSQL_USERNAME}", "{MYSQL_PASSWORD}", "{MYSQL_DATABASE}"); if (!$connection_obj) { echo "Error No: " . mysqli_connect_errno(); echo "Error Description: " . mysqli_connect_error(); exit; }
Sélection d'une base de données:
Bien que vous puissiez spécifier la base de données dans mysqli_connect
, mysqli_select_db
permet de changer de base de données après la connexion:
$connection_obj = mysqli_connect("{MYSQL_HOSTNAME}", "{MYSQL_USERNAME}", "{MYSQL_PASSWORD}"); if (!$connection_obj) { /* error handling as above */ } mysqli_select_db($connection_obj, "{MYSQL_DATABASE}");
mysqli_select_db
prend l'objet de connexion et le nom de la base de données comme arguments.
Création et mise à jour des enregistrements:
Créez une table MySQL (par exemple, en utilisant phpmyadmin):
CREATE TABLE `employee` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL, `email` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL, `phone` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Insertion:
$name = 'John Smith'; $email = 'john.smith@yahoo.com'; $phone = '541-754-1234'; $query = "INSERT INTO employee(`name`,`email`, `phone`) VALUES ('" . mysqli_real_escape_string($connection_obj, $name) . "','" . mysqli_real_escape_string($connection_obj, $email) . "','" . mysqli_real_escape_string($connection_obj, $phone) . "')"; mysqli_query($connection_obj, $query);
surtout, mysqli_real_escape_string
empêche les vulnérabilités d'injection SQL.
Mise à jour:
$id = 1; $phone = '333-555-4444'; $query = "UPDATE employee SET `phone` = '" . mysqli_real_escape_string($connection_obj, $phone) . "' WHERE `id` = '" . (int)$id . "'"; mysqli_query($connection_obj, $query);
Récupération des enregistrements:
$query = "SELECT * FROM employee"; $result = mysqli_query($connection_obj, $query) or die(mysqli_error($connection_obj)); while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) { echo "ID:" . $row['id'] . "<br>"; echo "Name:" . $row['name'] . "<br>"; echo "Phone:" . $row['phone'] . "<br>"; echo "Email:" . $row['email'] . "<br><br>"; }
mysqli_fetch_array
récupère les lignes; MYSQLI_BOTH
permet d'accéder aux colonnes par nom ou index. mysqli_fetch_assoc
fournit uniquement des tableaux associatifs.
Suppression des enregistrements:
$id = 1; $query = "DELETE FROM employee WHERE `id` = '" . (int)$id . "'"; mysqli_query($connection_obj, $query);
N'oubliez pas de fermer la connexion en utilisant mysqli_close($connection_obj);
après toutes les opérations. Cet exemple fournit une base pour des interactions plus complexes de la base de données dans PHP. N'oubliez pas de toujours désinfecter les entrées des utilisateurs pour éviter l'injection SQL.
(Remarque: Les URL de l'image sont des espaces réservés de l'entrée d'origine. Remplacez-les par des URL d'image réelles si nécessaire.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!