IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Programme fonctionne en local, pas complètement sur le serveur [PDO]


Sujet :

PHP & Base de données

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut Programme fonctionne en local, pas complètement sur le serveur
    Bonjour,

    Dans une classe contrôleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    				/** Enregistrement de l'étudiant (partie candidat) */
    				$objEtudiant = new Etudiant(null, trim($_POST['nomUsuel']), trim($_POST['prenomUsuel']), new Civilite(intval($_POST['civilite'])));
     
    				$objEtudiant->setCanIdSexe(intval($_POST['civilite']));
    				$objEtudiant->setCanPaysNationalite(new Pays(intval($_POST['nationalite'])));
    				$objEtudiant->setCanNomNaissance(trim($_POST['nomNaissance']));
    				$objEtudiant->setCanVilleNaissance(new Ville($form->verifExistenceVille($_POST['naissance'], "ville de naissance")));
    // ...
     
    $objEtudiant->enregistrerCandidat();
    Jusque là, ça fontionne. La méthode enregistrerCandidat() (de la classe Candidat, mère de Etudiant) exécute une procédure SQL pi_ajout_candidat qui insère une personne puis la fille personne physique et la petite fille candidat.

    Ensuite, dans la même classe que ci-dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    				/** Enregistrement des informations de l'étudiant */
    				if(trim($_POST['numEtudiant']) == '')
    				{
    					$objEtudiant->setEtuNumero($objEtudiant->genererNumeroEtudiant(intval($_POST['diplome_ensfea']),
    						intval($_POST['annee_universitaire']), intval($_POST['diplomeAnnee'])));
    					$objEtudiant->setEtuAnneeEntree(intval($_POST['annee_universitaire']));
    				}
    				elseif(strlen(trim($_POST['numEtudiant'])) == 13)
    				{
    					$objEtudiant->setEtuNumero(trim($_POST['numEtudiant']));
    					$objEtudiant->setEtuAnneeEntree($objEtudiant->chercheAnneeEntree(trim($_POST['numEtudiant'])));
    				}
     
    				// FIXME Année entrée calculée potentiellement écrasée par une saisie vide ou absurde
    				$objEtudiant->setEtuAnneeEntree($_POST['anneeEntree']);
    				$objEtudiant->setEtuAutorisationIzly(boolval($_POST['autorisationIzly']));
    				$objEtudiant->setEtuAutorisationPhoto(boolval($_POST['fichierAutorisationPhoto']));
     
    				/* **** Enregistrement de l'étudiant en BDD *** */
    				$objEtudiant->enregistrerEtudiant();
    De la même manière qu'à la première étape, la méthode enregistrerEtudiant() de la classe Etudiant exécute une procédure SQL pi_ajout_etudiant qui fonctionne si je l'exécute manuellement dans phpMyAdmin avec les valeurs passées par le programme mais rien n'est enregistré en BDD : l'étudiant n'y est pas créé.

    Sur mon poste en local, tout fonctionne normalement.

    Une idée à me soumettre vite ? Je présente la première partie de l'appli cet après-midi !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Salut,

    Question bête peut-être, as-tu comparé les versions de PHP entre le local et le distant ?
    Je me posais la question également pour MySQL mais si la requête est bonne en "manuel", c'est que ce n'est pas le problème (je pensais aux erreurs de type "NON NULL VALUE")

    Il n'y a aucune erreur retournée ?? C'est quand même étrange ça

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    J'ai trouvé sur StackOverflow.

    La différence que j'avais entre enregistrerCandidat et enregistrerEtudiant était l'utilisation de PDO::PARAM_BOOL dans la seconde méthode.

    Et c'est un bug silencieux qui semble donc encore présent sur la version PDO du serveur (OpenSuse pourtant récemment mis à jour par mon collègue) que je n'ai plus sur mon poste.
    https://stackoverflow.com/questions/...-fail-silently
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] "espace client" fonctionne en local, pas sur Internet
    Par quiky dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/10/2009, 15h18
  2. [FPDI] Fonctionne en local/pas en ligne: "FPDF error: Unexpected data in xref table"
    Par gobi13 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 26/10/2007, 12h27
  3. Réponses: 3
    Dernier message: 27/04/2007, 19h39
  4. filezilla server, fonctionne en local pas à distance
    Par debdev dans le forum Administration
    Réponses: 18
    Dernier message: 25/04/2007, 23h58
  5. Réponses: 4
    Dernier message: 15/02/2006, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo