Requêtes SQL
Table des matières
Voici un article permettant de conserver une certaine cohérence (nécessaire) entres les requêtes des différents développeurs. Vous trouverez ici les règles pour vos requêtes, n'hésitez pas à y revenir régulièrement en cas de doute!
Utilisez les fonctions de la classe SQL pour vos requêtes afin d'assurer une compatibilité maximale de votre module.
Ecriture des requêtes
Ces règles ne sont pas des conseils, elles sont obligatoires afin d'assurer une compatibilité maximale.
Préfixe des tables
Vos tables devront être précédées de la constante PREFIX. Par défaut celle-ci vaut phpboost_
Exemple
Code PHP :
$Sql->Query("SELECT login FROM ".PREFIX."member WHERE user_id = 1", __LINE__, __FILE__);
La requête SQL exécutée sera (avec le préfixe phpboost_):
Code SQL :
SELECT login FROM phpboost_member WHERE user_id = 1
Conditions
Vous aurez souvent recours à des variables dans vos conditions. Celles-ci doivent être entourées d'apostrophes ('), ceci afin d'éviter un maximum les erreurs SQL si votre variable est vide et pour se conformer au standard SQL qui requiert que les chaines de caractères soient entourées d'apostrophes.
Exemple
Code PHP :
$Sql->Query("SELECT login FROM ".PREFIX."member WHERE user_id = '" . $user_id . "'", __LINE__, __FILE__);
Encapsulation des requêtes
Les requêtes SQL doivent être entourées de guillemets double ("). En effet vos champs variables devront être entourés d'apostrophes ('), cela évite donc d'échapper inutilement toutes vos apostrophes.
Exemple
Code PHP :
$Sql->Query("SELECT login FROM ".PREFIX."member WHERE user_id = 1", __LINE__, __FILE__);
Opérateurs
Les opérateurs en SQL sont assez limités vous devez connaitre = et != cependant ce dernier n'est pas compatible au standard SQL.
Vous ne devrez donc pas utiliser l'opérateur != mais <> qui est identique mais conforme au standard SQL.
Requêtes et fonctions
Si vous désirez exécuter une requête dans une fonction il faut d'abord mettre la variable $sql (qui contient l'objet instancié par la class) en global.
Exemple
Code PHP :
function ma_fonction() { global $sql; $Sql->Query("SELECT login FROM ".PREFIX."member WHERE user_id = 1", __LINE__, __FILE__); }
Sécurité
Les requêtes SQL peuvent être dangereuses si mal manipulée. En effet votre base de données contient l'essentiel des informations de votre site. Si celle-ci est détruite alors votre site est perdu.
C'est donc un point à ne pas négliger.
Pensez donc bien à sécuriser tout les variables passées dans vos requêtes SQL. Notamment les entiers et les flottants doivent être sécurisé avec la fonction numeric(), les textes BBCode avec la fonction parse() et les chaines de caractères avec la fonction securit().
Cette page a été vue 6083 fois





PHPBoost

Support
Téléchargements
Développement
Communauté

Outils
Contribuer