PHP, en tant que langage de script côté serveur populaire, peut rassembler de nombreux types de données et bases de données différents. En particulier dans le développement d’applications Web, il est souvent nécessaire d’accéder à des bases de données pour récupérer et manipuler des données. Cet article se concentrera sur les instructions de requête de base de données PHP.
1. Qu'est-ce qu'une instruction de requête de base de données
Dans le processus d'exploitation de la base de données, nous avons souvent besoin d'obtenir des données de la base de données. Pour le moment, nous devons utiliser des instructions de requête. La requête de base de données (SQL Query) est un ensemble d'instructions permettant de récupérer des données à partir d'une base de données. SQL est l'abréviation de Structured Query Language, qui est un langage largement utilisé dans les systèmes de gestion de données relationnelles (SGBDR) pour accéder et exploiter des bases de données.
En PHP, nous pouvons utiliser différentes fonctionnalités pour accéder à différents types de bases de données. PHP prend en charge MySQL, PostgreSQL, Oracle et d'autres bases de données. Chaque base de données a des instructions de requête légèrement différentes, mais elles sont essentiellement implémentées en utilisant le langage SQL.
2. La structure de l'instruction de requête
Une instruction de requête simple contient généralement trois parties : SELECT, FROM et WHERE. Dans SELECT, précisez les colonnes à récupérer ; dans FROM, précisez le nom de la table ; dans la clause WHERE, précisez les conditions de recherche.
Voici la structure de base de l'instruction de requête :
SELECT colonne1, colonne2, ...
FROM table
WHERE condition ;
la colonne représente le nom de la colonne à récupérer et plusieurs noms de colonnes sont séparés par des virgules. Habituellement, * (astérisque) est utilisé à la place des noms de colonnes pour indiquer la sélection de toutes les colonnes.
table indique le nom de la table qui doit être exploitée.
condition est une option facultative qui spécifie les conditions et restrictions de récupération des enregistrements, en utilisant des opérateurs logiques (tels que AND, OR, etc.) pour se connecter.
Par exemple, l'exemple suivant récupère les enregistrements dans la table "users" où les champs nom d'utilisateur et email sont "admin" et le champ mot de passe est "123" :
SELECT nom d'utilisateur, email, mot de passe
FROM users
WHERE username = 'admin' AND password = '123';
Cependant, pour certaines exigences de requête plus complexes, la simple utilisation de SELECT, FROM et WHERE peut ne pas être en mesure de répondre aux exigences. Dans ce cas, vous devez utiliser des instructions de requête avancées telles que. comme instructions JOIN et sous-requêtes. Ceci sera abordé dans un chapitre ultérieur.
3. Traitement des résultats de la requête
Le résultat renvoyé par l'instruction de requête est généralement un tableau contenant plusieurs lignes, chaque ligne représentant l'enregistrement correspondant. Pour les développeurs d'applications PHP, une entrée de tableau est un tableau et le contenu de chaque cellule est un élément du tableau. Le traitement des résultats de la requête comprend trois parties :
Utilisez mysqli_query et PDO::query en PHP pour exécuter des instructions de requête et renvoyer des jeux de résultats. Par exemple :
$query = "SELECT username, email, password FROM users WHERE username = 'admin' AND password = '123'";
$result = mysqli_query($connection, $query);
Utilisez mysqli_fetch_assoc, PDO::fetch et d'autres fonctions pour extraire les données de l'ensemble de résultats. Par exemple :
while ($row = mysqli_fetch_assoc($result)) {
echo "username: " . $row["username"] . " email: " . $row["email"] . " password: " . $row["password"];
}
En PHP, lorsque vous avez fini d'utiliser le jeu de résultats, vous devez utiliser la fonction mysqli_free_result ou PDOStatement::closeCursor pour libérer le jeu de résultats afin d'éviter le gaspillage de ressources. Par exemple :
mysqli_free_result($result);
4. Technologie de requête avancée
L'instruction JOIN peut joindre deux tables ou plus pour produire une nouvelle et grande table. Les instructions JOIN courantes incluent les jointures internes, les jointures externes (jointures gauche et droite), les auto-jointures, etc.
INNER JOIN : seuls les enregistrements qui remplissent les conditions dans les deux tables sont renvoyés. Autrement dit, lors de la connexion de deux tables, seules les mêmes valeurs dans les deux tables seront récupérées.
Par exemple :
SELECT commandes.OrderID, clients.CustomerName, commandes.OrderDate
FROM commandes
INNER JOIN clients
ON commandes.CustomerID=customers.CustomerID;
Cette requête renverra tous les clients dans la table des commandes (commandes ) L'ordre associé à la table (clients), où le symbole de jointure interne est JOIN ou INNER JOIN, et le mot clé ON spécifie les conditions de la clé primaire/clé étrangère du lien.
La sous-requête fait référence à l'intégration d'une requête SQL dans une autre instruction SQL. En règle générale, les sous-requêtes sont utilisées pour limiter le jeu de résultats de la requête principale. Les sous-requêtes peuvent être imbriquées dans plusieurs requêtes, appelées requêtes imbriquées.
Par exemple :
SELECT AVG(DISTINCT Price) FROM Products
WHERE ProductName IN (SELECT ProductName FROM Orders WHERE CustomerID=1);
Cette requête renverra le prix moyen de tous les produits commandés par le client avec l'ID 1, qui consiste en fait à utiliser la liste de sous-requêtes pour interroger tous les produits achetés par le client 1, puis à placer une fonction AVG à l'extérieur pour calculer la moyenne.
L'instruction UNION combine les ensembles de résultats de deux ou plusieurs instructions SELECT (les résultats doivent avoir les mêmes champs, donc parfois ils sont déclarés à l'aide d'alias), supprimant les lignes en double dans l'ensemble de résultats. Le format de l'instruction UNION est le suivant :
SELECT nom_colonne(s) FROM table1
UNION
SELECT nom_colonne(s) FROM table2;
Par exemple :
SELECT ProductName FROM Products
UNION
SELECT ProductName FROM Suppliers
ORDER BY ProductName;
Cette requête renverra tous les noms de produits, y compris les résultats obtenus à partir de la requête des fournisseurs (Fournisseurs) et des produits (Produits), supprimera les doublons et triera par nom.
Résumé
Cet article vise à présenter les instructions de requête de base de données PHP, en se concentrant sur la structure des instructions de requête et les méthodes de traitement des résultats de requête, ainsi que les technologies de requête avancées couramment utilisées, notamment JOIN, les sous-requêtes et les instructions UNION. Une utilisation appropriée de ces technologies de requête avancées peut obtenir plus efficacement les données requises de la base de données.
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!