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.
Ca fonctionne très bien en local sur WAMP Server version 2.5.
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; }
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
Merci d'avance à ceux/celles qui se pencheront sur mon soucis.
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 ;
Cordialement,
Micky
Partager