L'envoi d'une requête SQL à la base de données se fait avec une seule et unique fonction : mysqli_query().
On appelle cette fonction avec 2 paramètres :
La requête peut être composée de n'importe quelle commande SQL, aussi bien de manipulation de données (SELECT, INSERT, UPDATE, DELETE) que de définition de données (CREATE, DROP, ALTER, etc).
Pour des raisons de sécurité évidentes, l'application Web ne fait jamais de requêtes de définition de données et elle travaille toujours par l'intermédiaire d'un utilisateur qui a des droits réduits sur l'accès à la base de données. Cet utilisateur peut uniquement faire des requêtes SELECT, INSERT, UPDATE, DELETE sur les tables. Il ne doit surtout pas avoir le droit de créer de nouvelles tables, de manipuler les structures des tables existantes, ou pire de les supprimer.
Si une erreur se produit au cours de la requête, mysqli_query() renvoie FALSE.
Si aucune d'erreur ne se produit mysqli_query() renvoie :
Les requêtes qui sont faites dans un site web dynamique sont à 90%-95% des requêtes SELECT. Il est donc recommandé de bien connaître les différentes clauses d'une telle requête (FROM, WHERE, ORDER BY, etc) et savoir faire des jointures entre différentes tables. dev.mysql.com/doc/refman/5.7/en/select.html
L'exemple suivant sélectionne quelques informations sur le livre numéro 5 de notre base de données.
Nous verrons plus loin et en détail comment on traite les résultats d'une requête SELECT. Ici on utilise simplement notre fonction infoTableau car les résultats sont retournés sous la forme d'un tableau associatif.
Un autre exemple avec des jointures ...
Ecrivez des requêtes facilement lisibles.
Il faut profiter des facilités offertes par PHP dans la composition des chaînes de caractères littérales pour essayer de présenter les requêtes de manière aisément compréhensible.
Cette requête marche très bien :
$sql = 'select liTitre, liAnnee, liPages, liPrix, auNom, auPrenom, edNom from livres, aut_livre, auteurs, editeurs where liID = 15 and al_IDLivre = liID and auID = al_IDAuteur and edID = liIDEditeur';
Celle ci marche aussi très bien. En plus on comprend mieux ce qui se passe et plus rapidement :
$sql = 'SELECT liTitre, liAnnee, liPages, liPrix, auNom, auPrenom, edNom FROM livres, aut_livre, auteurs, editeurs WHERE liID = 15 AND al_IDLivre = liID AND auID = al_IDAuteur AND edID = liIDEditeur';