|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() ![]() Inscription : décembre 2005 Messages : 113 ![]() |
Bonjour à tous,
Aujourd'hui j'ai mis en prod un petit CMS développé par mes soins sur un II6/mySQL 5.x/php 5.2.x. Je travaille avec le framework Codeigniter. Mon niveau d'erreur est défini à E_ALL. J'ai été surpris de voir que PHP me retournait des erreurs en provenance de mySQL sur les types de champs mySQL alors que je ne les avaient dans ma config de développement (LAMP chez ovh). Je m'explique : Par exemple, j'ai un champ "ordre" INT(2) et lorsque que j'envoie une chaîne vide lors d'un INSERT, PHP m'affiche une erreur comme quoi mySQL attends un entier et non pas une chaîne. (Ce que y plutôt normal en fin de compte). Alors que dans mon environnement de développement je n'ai aucune alerte de ce type. Ce que je cherche à comprendre, c'est quelle est la différence de configuration php ou mySQL qui conduit à ces deux comportements différents. Bref je voudrais savoir comment afficher systématiquement ces alertes/erreurs afin d'être plus vigilant quant à la définition et au typage des mes champs. Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : avril 2009 Messages : 1 157 ![]() |
montre nous le message d'erreur entier
__________________
GNAP ! |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() ![]() Inscription : décembre 2005 Messages : 113 ![]() |
je n'ai plus accès au message d'erreur car la machine de prod est dans un extranet...
Mais ce que disait le message php en substance était quelques chose de la sorte : "Le type fournit pour le champ 'ordre' est incorrect, j'attends un entier" J'ai dejà vu ce type d'alerte dans phpMyAdmin mais je n'avais encore jamais vu php me retourner ce genre de message lors des INSERT ou des UPDATE. |
|
|
00
|
|
|
#4 | |
|
Membre chevronné
![]() Inscription : juin 2004 Messages : 747 ![]() |
Bonjour,
Il y a clairement une différence de config entre les 2 environnements. Dans le fichier php.ini il y a cette clause qui est peut-être activée chez ton hébergeur en PROD : Citation:
__________________
|
|
|
00
|
|
|
#5 | |
|
Membre du Club
![]() ![]() Inscription : décembre 2005 Messages : 113 ![]() |
Citation:
C'est effectivement ce que je pense, mais il semble, selon le phpinfo qu'on m'avait transmis, que cette option est bien en 'off'. Y-aurait t il un autre paramètre de config qui pourrait expliquer cet affichage d'erreurs ? [EDIT] J'ai mis mysql.trace_mode à 'On' dans ma config de dév et je n'ai pas les erreurs que j'ai vu en prod... |
|
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Inscription : juin 2004 Messages : 747 ![]() |
Alors peut-être regarder du côté de la conf MySql (my.cnf) : niveau de log différent notamment entre ta prod et ovh..
__________________
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() ![]() Inscription : décembre 2005 Messages : 113 ![]() |
|
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
tu serais pas en mode strict, apres c'est a toi de bien formater les valeurs aussi,
c'est par exemple : WHERE id = 14 et pas WHERE id = '14' si ton champs est du type int
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#9 | ||
|
Membre du Club
![]() ![]() Inscription : décembre 2005 Messages : 113 ![]() |
Citation:
Citation:
j'ai vu une différence dans la conf, mais je doute que ca soit ca : dans le dev : display_errors STDOUT et dans la prod : display_errors On |
||
|
|
00
|
|
|
#10 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
Citation:
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() ![]() Inscription : décembre 2005 Messages : 113 ![]() |
|
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() ![]() Inscription : décembre 2005 Messages : 113 ![]() |
Bingo !
Merci stealth35, le mode SQL était bien : STRICT_TRANS_TABLES ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com