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 :

Requete UPDATE avec PDO fonctionnelle en local mais pas sur OVH [PDO]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Requete UPDATE avec PDO fonctionnelle en local mais pas sur OVH
    Bonjour à tous et toutes,

    Je viens quémander un peu d'aide pour un soucis que je n'arrive pas à identifier.
    J'ai une fonction qui active un compte dans la BDD selon les paramètres reçus.
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    function activationMembreBDD($email, $cle)
        {
            //
            $sqlData = array();
            $validate = 1;
     
            //
            $oPDO = getBDD();
     
            // La requete
            $sqlCheck="UPDATE `users`
                        SET
                        `user_valide` = :validate
                        WHERE
                        `user_mail` = :mail AND `user_cle` = :clef";
     
            try
            {
                $prep = $oPDO->prepare($sqlCheck);
                $prep->bindValue(':validate', $validate, PDO::PARAM_INT);
                $prep->bindValue(':mail', $email, PDO::PARAM_STR);
                $prep->bindValue(':clef', $cle, PDO::PARAM_STR);
                $prep->execute();
     
                $infoNbLigne = $prep->rowCount(); // Nombre de ligne affectee, on sait ainsi, si la requete a fonctionne ou pas
                $sqlData['Messages'][] = array(
                'status' => "La requete a reussi.",
                'nbLigne' => $infoNbLigne
                ); 
            }
            catch(Exception $e)
            {
                $sqlData['Messages'] = "La requete a rencontre un soucis. "."ERREUR PDO dans " . $e->getFile() . " L." . $e->getLine() . " : " . $e->getMessage();; // C_est pour gerer les erreurs en mode DEBUG.
            }
            // on ferme le curseur des resultats, une fois termine notre traitement.
            $prep->closeCursor();
            // On vide
            $prep = NULL;
            // On renvoi le resultat. Boucle foreach pour l_exploiter dans la page appelante.
            return $sqlData;
        }
    Ca fonctionne très bien en local sur WAMP Server version 2.5.

    Sur mon hébergement mutualisé OVH, la requête s'exécute bien, mais MySQL retourne 0 ligne affectée. Et donc ma fonction plante systématiquement.
    J'ai fais plein de tests en passant par l'interface phpmyadmin, mais je tourne en rond.

    :: VERSIONS PHP et MySQL EN LOCAL AVEC WAMP SERVER ::

    Version PHP : 5.5.12
    Version MySQL : 5.6.17


    :: VERSION CHEZ OVH ::

    Version PHP : 5.4.34
    Version MySQL : 5.1.73

    Un autre regard verra peut-être ce que je ne vois pas.

    La structure de ma table SQL
    Code sql : 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
    21
    22
    23
    CREATE TABLE IF NOT EXISTS `users` (
      `user_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `user_nom` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
      `user_prenom` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
      `user_adresse` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
      `user_cp` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
      `user_ville` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
      `user_telFixe` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
      `user_telMob` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
      `user_mail` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
      `user_pass` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
      `user_groupeID` int(3) NOT NULL,
      `user_valide` int(3) DEFAULT NULL COMMENT 'Passe a 1 une fois le mail de validation active',
      `user_cle` varchar(200) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Cle aleatoire generee lors de l''inscription',
      `date_inscription` datetime NOT NULL,
      `last_connected` datetime DEFAULT NULL COMMENT 'Date de la derniere connexion au site',
      `user_status` int(3) NOT NULL COMMENT '0 ou 1, selon que l''on soit en ligne ou pas',
      `user_ip` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Adresse IP du client lors de la connexion au site',
      `user_domaine` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Domaine du client lors de la connexion au site',
      `user_browser` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Navigateur du client lors de la connexion au site',
      PRIMARY KEY (`user_id`),
      UNIQUE KEY `user_mail` (`user_mail`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=13 ;
    Merci d'avance à ceux/celles qui se pencheront sur mon soucis.
    Cordialement,
    Micky

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Je suis passé de utf8_unicode_ci à utf8_general_ci que j'utilise normalement et le problème à été résolu.
    Merci à ceux qui ont pris le temps de lire.
    Bon week-end

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

Discussions similaires

  1. [MySQL] site avec session fonctionne en local mais pas en ligne
    Par rvm31 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/06/2019, 18h43
  2. Réponses: 2
    Dernier message: 28/05/2014, 08h49
  3. Réponses: 0
    Dernier message: 02/08/2013, 20h02
  4. header fonctionnel en local mais pas sur l'hébergeur
    Par dali0807 dans le forum Langage
    Réponses: 1
    Dernier message: 05/06/2013, 23h55
  5. Réponses: 10
    Dernier message: 02/07/2012, 17h30

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