Formation PUB010 : PHP, 2018 Travailler avec les données

Effectuer une requête par programmation


La méthode $mysqli->query() permet de lancer une requête au serveur MySQL.

Pour faciliter le travail, nous allons toujours utiliser une variable nommée $requete dans laquelle nous allons inscrire la requête. Il peut s'agir d'une clause SELECT, UPDATE, DELETE, etc.

Important : assurez-vous que dans la base de données, le nom des tables et des champs utilisent seulement des lettres minuscules.

De plus, dans vos requêtes SQL, utilisez toujours des lettres minuscules pour les noms de tables et de champs.

C'est que le serveur de bases de données ou les outils utilisés pour effectuer la requête pourraient contenir une configuration qui pose problème si des majuscules sont utilisées. 

Une fois la requête inscrite dans la variable $requete, nous allons recevoir le résultat de la requête dans une variable nommée $resultat.

Ex : pour retrouver la liste des clients de Victoriaville :

PHP

$requete = "SELECT id, prenom, nomfamille FROM clients WHERE UPPER(ville)='VICTORIAVILLE' ORDER BY nomfamille, prenom";

$resultat = $mysqli->query($requete);

▼Publicité Le texte se poursuit plus bas

Requête contenant des variables PHP

Si une partie de la requête dépend d'une variable PHP, on prendra soin d'entourer la requête de guillemets. Ceci permettra à PHP d'interpréter la variable.

Notez que si la variable contient du texte à comparer à un champ, il faut entourer la variable d'apostrophes car SQL entoure toujours les chaînes de caractères d'apostrophes.

Ex :

PHP

$requete = "SELECT id, prenom, nomfamille FROM clients WHERE UPPER(ville)='$ville' ORDER BY nomfamille, prenom";

Attention : il est dangereux d'inclure une variable directement dans une requête SQL. Nous verrons sous peu comment mieux se protégerà l'aide des requêtes préparées.

Nom de la base de données

Il est possible de préciser le nom de la base de données dans une requête. Cependant, cette pratique est à éviter car lorsque le site sera mis en ligne, il y a de fortes chances que le nom de la base de données soit changé afin d'éviter les conflits de nom et les failles de sécurité.

MySQL

SELECT id, prenom, nomfamille FROM mabd.clients WHERE UPPER(ville)='VICTORIAVILLE' ORDER BY nomfamille, prenom

Assurez-vous donc que le nom de la base de données ne soit écrit en dur que lors du branchement à la base de données  (lors de la création de l'objet $mysqli).

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Dernière révision le 1 avril 2021
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre