Page 1 sur 1
PDO marche, marche pas
Posté : 27 févr. 2011, 06:52
par youssef
bonjour à vous
svp je viens de découvrir l'objet PDO pour accéder au base de donnée, mais le problème c'est que pour appli dont j'ai repris le développement dernièrement, tout marchait très bien sur mon environnement local : php 5.2, MySQL 5.1.44 le tout sur un mac os
au niveau local l'appli marche impeccablement mais une fois sur le serveur : un serveur windows server 2003 avec php 5.3.2, et mySQL 5.0.7-dev
les requêtes ne marche pas sur tout tout ce qui est insert ou update ( les select marche bien )
avez vous une idée sur le problème qui peut être l'origine de ce problème
MErci
Re: PDO marche, marche pas
Posté : 27 févr. 2011, 09:23
par moogli
salut,
sans code ce n'est pas possible, y a t'il des erreurs de remontées ?
si le select fonctionne je penche pour un soucis de code mais la c'est qu'une hypothèse.
vérifie la différence en les conf de php en local et sur le serveur (généralement elles sont différente).
@+
Re: PDO marche, marche pas
Posté : 27 févr. 2011, 11:01
par xTG
Re: PDO marche, marche pas
Posté : 27 févr. 2011, 17:42
par youssef
Merci pour la réponse
voilà j'ai ajouté des try catch un peu par tout et aussi des
ini_set('display_errors', 1);
ini_set('log_errors', 1);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
error_reporting(E_ALL);
afin d'obtenir une erreur, et voilà ce que j'ai obtenu :
Code : Tout sélectionner
Warning: PDOStatement::execute(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '1.0/no DST' instead in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\version2-3_fr\section0\Rs.php on line 73 Warning: PDOStatement::execute(): SQLSTATE[01000]: Warning: 1265 Data truncated for column 'provenance' at row 1 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\version2-3_fr\section0\Rs.php on line 73
je crois que c'est du au champs date qui de type "date"
en fait j'ai crée une fonction qui permet de changer le fomat de la date du format français : JJ/MM/AAAA au format de MySQL AAAA-MM-JJ et c'est le résultat de cette fonction que j'insère dans mon champs. mais je peux pas en être sur vu que la même requête et même code marche très bien sur mon environnement local.
merci d'avance.
Re: PDO marche, marche pas
Posté : 27 févr. 2011, 18:20
par xTG
En fait ton php.ini n'est pas correctement configuré. La valeur date.timezone n'est pas fixée et doit être vide.
Tu peux soit aller la modifier directement dans le fichier, soit passer par la fonction
date_default_timezone_set().
Re: PDO marche, marche pas
Posté : 27 févr. 2011, 18:35
par youssef
merci
je vais essayer pour voir si ça marche
j'ai pas accès au php.ini
donc je vais voir du coté de la fonction.
Re: PDO marche, marche pas
Posté : 28 févr. 2011, 16:03
par youssef
Merci pour l'info ça marche mieux maintenant, j'ai pu éviter le warning,
mais reste une remarqe que j'ai eu qui est relatif à la sensibilité de MySQL j'ai l'impression que ma configuration en local : configuration par défaut de MAMP n'est pas aussi sensible que la version du serveur, je ne sais pas si c'est du à la version ou à une configuration précise.
par exemple j'ai un champ de type enum, avec deux valeurs et qui est aussi nullable.
le fait de ne pas renseigner ce champs dans la base de données de serveur retourne un warning alors que sur ma base local tout marche très bien.
Avez vous une idée ?
( NB : j'ai gardé le même sujet parce que j'ai jugé que c'est relatif au sujet initiale PDO, veuillez m'en excuser si ce n'est pas le cas )
Merci d'avance
Re: PDO marche, marche pas
Posté : 01 mars 2011, 07:25
par xTG
Quel est ce warning ?
Re: PDO marche, marche pas
Posté : 01 mars 2011, 13:35
par moogli
et quel est le code
un enum "nullable" me parait bien contradictoire (a moins d'avoir mi null dans la liste enum aussi

)
@+