Depuis PHP 5.5, l'extension mysql a été complètement supprimée, et il est officiellement recommandé d'utiliser MySQLI ou PDO à la place. Cet article parle principalement de certaines opérations de base de mysqli. Il existe deux styles d'écriture utilisant MySQLi, le style objet ou le style fonctionnel. Ci-dessous, nous montrons uniquement le style d'écriture fonctionnel.
Connexion à la base de données
Vous devez d'abord vous connecter à la base de données. Avant de nous connecter aux données, nous devons généralement préparer le compte de base de données, le mot de passe, le numéro de port et le nom de la base de données.
Pour des raisons de réseau ou d'autres raisons, il est souvent impossible de se connecter à la base de données, nous devons donc gérer l'échec de connexion.
<?php // 数据库连接 $mysqli = mysqli_connect( 'localhost', 'root', '', 'test' ); if (mysqli_connect_errno()) { throw new Exception('databases connect error:' .mysqli_connect_error()); } // ...一些数据库操作 // 关闭数据库资源 mysqli_close($mysqli);
Définissez le jeu de caractères
Définissez le jeu de caractères en utilisant mysqli_set_charset();
Actuellement, nous utilisons principalement utf8mb4 pour le jeu de caractères Parce qu'il prend en charge les caractères de 4 octets. Il prend en charge certains caractères emoji. Bien sûr, si vous n'avez pas besoin de prendre en charge les caractères de 4 octets, vous pouvez choisir d'utiliser utf8, car il dispose de plus d'espace.
mysqli_set_chartset($mysqli, 'utf8mb4');
Resélectionner la base de données
Une fois la base de données connectée, vous pouvez également resélectionner la base de données.
mysqli_select_db($mysqli, '数据库名');
Opération CURD
mysqli_query() : effectuez une opération sur la base de données, DDL, DQL et DML sont tous pris en charge.
mysqli_affected_rows() : obtenez le nombre de lignes d'enregistrement affectées.
Opération d'ajout de données
mysqli_query($mysqli, "INSERT INTO users(username, age, sex) VALUES('周杰伦', 35, '男'), ('谢霆锋', 35, '男')" ); if (mysqli_affected_rows($mysqli) <= 0) { throw new Exception('databases insert error:' . mysqli_error($mysqli)); }
Opération de modification de données
Il y a un point à noter ici, la valeur renvoyée par mysqli_affected_rows est 0. Il met à jour exactement les mêmes informations que la dernière fois, ce qui est très courant. Par exemple, lors d'une modification, le bouton Modifier est cliqué plusieurs fois de suite. Mais cela ne signifie pas qu’il y a un problème avec le code du programme. Par conséquent, contrairement au nouvel ajout, renvoyer 0 devrait également être un statut de réussite.
mysqli_query($mysqli, "UPDATE users SET age=40 WHERE user_id = 1" ); if (mysqli_affected_rows($mysqli) < 0) { throw new Exception('databases update error:' . mysqli_error($mysqli)); }
Opération de suppression de données
Remarque : les opérations de modification et de suppression doivent ajouter des conditions où , sinon les données de la table entière seront modifiées, avec des conséquences désastreuses (supprimer la base de données et fuir o(╯□╰)o).
mysqli_query($mysqli, "Delete FROM users WHERE user_id = 100" ); if (mysqli_affected_rows($mysqli) <= 0) { throw new Exception('databases delete error:' . mysqli_error($mysqli)); }
Opération de requête
Lorsque mysqli_query exécute une instruction de requête, cette fonction renvoie le jeu de résultats mysqli_result.
mysqli_fetch_all() récupère toutes les données de l'ensemble de résultats. Le deuxième paramètre de cette fonction peut spécifier le format des données renvoyées. Ce sont :
MYSQLI_NUM : Renvoie le tableau d'index
MYSQLI_ASSOC : Renvoie le tableau associatif
MYSQLI_BOTH : Tableau d'index et tableau associatif
Notez également qu'une fois l'opération sur l'ensemble de résultats terminée, n'oubliez pas de détruire les ressources de l'ensemble de résultats.
// 数据库连接 $mysqli = mysqli_connect( 'localhost', 'root', '', 'test' ); if (mysqli_connect_errno()) { throw new Exception('databases connect error:' .mysqli_connect_error()); } mysqli_set_charset($mysqli, 'utf8mb4'); $result = mysqli_query($mysqli, "SELECT * FROM users" ); if (mysqli_affected_rows($mysqli) < 0) { throw new Exception('databases select error:' . mysqli_error($mysqli)); } $users = mysqli_fetch_all($result, MYSQLI_ASSOC); // 销毁结果集资源 mysqli_free_result($result); // 关闭数据库资源 mysqli_close($mysqli);
Ce qui précède est le fonctionnement de base de Mysqli, un résumé de l'apprentissage et du développement personnels réels, bienvenue pour en discuter !
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!