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