Article Les erreurs fréquentes en SQL / PHP - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Article Les erreurs fréquentes en SQL / PHP (/showthread.php?tid=8202) |
Les erreurs fréquentes en SQL / PHP - Xenos - 14-09-2020 Les erreurs fréquentes en SQL / PHP L'intéret de ce sujet est de référencer les erreurs courrament rencontrées. Des erreurs qui de plus pourraient souvent être facilement évitées. Mots réservés ou mots clés MySQL Parfois, lors de l'exécution de vos requêtes vous aller avoir à faire à une erreur du type : Citation :<div class="no"> Vérifiez dès lors que les noms de vos champs ne sont pas réservés par MySQL. Vous trouverez la liste de ces mots en suivant le lien suivant : Cas des mots réservés MySQL Undefined Index On aborde cette fois-ci la situation où le message d'erreur Code : Notice: Undefined index Le mot clé Code : Notice Le problème est de vérifier que la clé citée dans le message d'erreur a bien une valeur dans ledit tableau ( Code : $_POST Code : $_GET Pour cela, un simple Code : isSet( $_ARRAY[ 'tableKey' ] ) Headers already sent by Le message type dans les cas d'utilisation des sessions et / ou des cookies. cannot modify header information - headers already sent by Il ne faut pas oublier que les headers doivent être envoyé avant TOUT code HTML qu'il soit directement dans le script, ou bien renvoyé par PHP. Pour pallier à cette erreur, vous pouvez utiliser les fonctions de manipulation du buffer. Pour cela, consulter la référence Fonctions ob_ ; Bufferisation de sortie Parse Error Ce type d'erreur correspond souvent à un oubli. Un oubli de virgule, de point, de point-virgule. Ces erreurs sont simples à corriger. Cependant il arrive qu'il faille regarder - généralement - la ligne au dessus pour trouver l'erreur, non pas la ligne citée dans le message d'erreur. Différents types standards d'erreurs : Code : Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING Code : Parse error: syntax error, unexpected T_VARIABLE Manipulation du temps avec PHP & SQL Une erreur de conception classique, utiliser des champs VARCHAR pour stocker des timestamp PHP dans une table SQL. Les champ de type Code : TIMESTAMP Code : TIMESTAMP Ces valeurs sont bien plus lisibles et surtout, bien plus pratique à utiliser ! On peut facilement les mettre en valeur par défaut d'un champ, et le Code : TIMESTAMP On peut s'en servir pour formater une date directement avec SQL, à l'aide de la fonction SQL DATE_FORMAT(date, format), qui s'utilise de cette manière : Cette requête renvoie le nom (champ : Code : nom Code : date_inscription
Si j'avais voulu renvoyer le moment de l'inscription à la minute près et dans une jolie chaîne de caractères, j'aurais fais :
On trouvera les correspondances sur PHPFrance - Formater une date par exemple. Les Code : TIMESTAMP Par exemple, si je veux effacer les messages d'une table et qui ont été crées il y à 5 jours ou plus :
À voir : * AB MySQL - Fonctions de dates et d'heures * MySQL : Formater une date Manipulation des temps, parce qu'il y a des confusion à éclaircir : - Code : mktime() Code : time() - MySQL travaille à la précision donnée par le type du champ, un type Code : TIMESTAMP Code : DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 5 DAY) - Quand on fait des requêtes, l'idée générale est de déléguer le maximum de traitements au serveur SQL, donc c'est une bonne chose de lui faire gérer les traitements de date directement. - Il y a Code : strtotime() Code : time()-432000 Code : strtotime('-5 DAYS') — _who (whoshallsucceed@gmail.com) 2010/10/19 00:05 Avec l'aimable participation de Sephi-Chan & naholyr |