Passage de mysqli en PDO
Résolu/Fermé
flexi2202
Messages postés
3806
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
26 mars 2025
-
Modifié le 25 mai 2021 à 12:43
flexi2202 Messages postés 3806 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 26 mars 2025 - 25 mai 2021 à 13:42
flexi2202 Messages postés 3806 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 26 mars 2025 - 25 mai 2021 à 13:42
A voir également:
- Pdo ou mysqli
- Mysqli::real_connect(): (hy000/2002): aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée - Forum Bases de données
- Formulaire de connexion php avec pdo ✓ - Forum PHP
- Il manque l'extension mysqli. merci de vérifier la configuration php. voir la documentation pour plus de détails. ✓ - Forum PHP
- Xampp pdo ✓ - Forum PHP
- Mysqli::real_connect(): (hy000/1045): access denied for user 'root'@'localhost' (using password: no) - Forum MySQL
3 réponses
jordane45
Messages postés
38456
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 mars 2025
4 740
25 mai 2021 à 12:58
25 mai 2021 à 12:58
Ligne 25 et 26 inutiles... Puisque tu as récupéré proprement les variables au ligne 19 et 20...
Ligne 22, il faut utiliser les variables des lignes 19 et 20 et non pas à nouveau remettre les variables $_POST ... Sinon à quoi ça sert de les récupérer proprement avant de les utiliser... ????
Ligne 15 et 16 à supprimer !
La fonction addslashe ( également valable pour la fonction htmlsprcialchars ) ne doit pas utiliser pour traiter les variables avant leur utilisation en base de données...
Je précise également qu'on ne modifie pas ou ne remplit pas une variable $_POST comme tu l'as fait...
Ligne 22, il faut utiliser les variables des lignes 19 et 20 et non pas à nouveau remettre les variables $_POST ... Sinon à quoi ça sert de les récupérer proprement avant de les utiliser... ????
Ligne 15 et 16 à supprimer !
La fonction addslashe ( également valable pour la fonction htmlsprcialchars ) ne doit pas utiliser pour traiter les variables avant leur utilisation en base de données...
Je précise également qu'on ne modifie pas ou ne remplit pas une variable $_POST comme tu l'as fait...
flexi2202
Messages postés
3806
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
26 mars 2025
187
25 mai 2021 à 13:25
25 mai 2021 à 13:25
merci pour la correction et surtout le cote pédagogique jordane
enfin j avance
voila tout est ok
je poste le code pour ceux que cela intéresse et pour l apprentissage
enfin j avance
voila tout est ok
je poste le code pour ceux que cela intéresse et pour l apprentissage
<?php try{ $bdd = new PDO('mysql:host=localhost;dbname=id15003105_test', 'root', ''); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } $contenu = ''; if ($_POST) { $_POST['pseudo'] = ($_POST['pseudo']); $_POST['message'] = ($_POST['message']); //je recupere les variable proprement avant utilisation //Si la variable $_POST['nom'] existe et n'est pas vide, j'en récupère la valeur, sinon je mets la variable $nom à NULL $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $message = !empty($_POST['message']) ? $_POST['message'] : NULL; if (!empty ($pseudo) && !empty ($message) ) { $today = date("Y-m-d "); $sql = "INSERT INTO commentaire (pseudo, message, date_enregistrement) VALUES (:valeur1,:valeur2 ,:valeur3)"; $datas = array(':valeur1'=>$pseudo, ':valeur2'=>$message , ':valeur3'=>$today ); //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } $contenu .= ' <div class="validation">Votre message/question a bien été enregistré </br>il est en attende de validation . </div>'; } else { $contenu .= ' <div class="erreur">Afin de déposer un commentaire, veuillez svp remplir tous les champs du formulaire.</div>'; } } //$resultat = $mysqli->query( //"SELECT pseudo,valider, message, date_enregistrement ,DATE_FORMAT(date_enregistrement, '%d/%m/%Y') AS datefr, //DATE_FORMAT(date_enregistrement, '%H:%i:%s') AS heurefr FROM commentaire WHERE valider = 0 ORDER BY date_enregistrement //DESC"); $sql = "SELECT pseudo,valider, message, date_enregistrement ,DATE_FORMAT(date_enregistrement, '%d/%m/%Y') AS datefr, DATE_FORMAT(date_enregistrement, '%H:%i:%s') AS heurefr FROM commentaire WHERE valider = 0 ORDER BY date_enregistrement DESC"; $datas = NULL; // ------------------------------ // // CETTE PARTIE DU CODE NE CHANGE PAS // try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } // ------------------------------ // ?>
jordane45
Messages postés
38456
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 mars 2025
4 740
25 mai 2021 à 13:35
25 mai 2021 à 13:35
Ligne 15 et 16 à supprimer
flexi2202
Messages postés
3806
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
26 mars 2025
187
25 mai 2021 à 13:42
25 mai 2021 à 13:42
oui en effet je les avais oublie
encore merci jordane pour toute cette aide et patience
encore merci jordane pour toute cette aide et patience