Connexion base de données PDO
Résolu/Fermé
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
-
29 avril 2015 à 21:37
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - 30 avril 2015 à 11:59
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - 30 avril 2015 à 11:59
A voir également:
- Connexion base de données PDO
- Gmail connexion - Guide
- Gmail connexion autre compte - Guide
- Voe.sx n'autorise pas la connexion. ✓ - Forum Réseaux sociaux
- Formules excel de base - Guide
- Base de registre - Guide
2 réponses
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
Modifié par Thorak83 le 29/04/2015 à 22:05
Modifié par Thorak83 le 29/04/2015 à 22:05
Bonsoir,
Cordialement,
Thorak83
<?php try { $bdd = new PDO ('mysql:host=localhost;dbname=rs;charset=utf8', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } function inscrire_utilisateur($pseudo,$password,$email,$sexe,$situation,$apropos) { Global $bdd; $password=sha1($password); $sql = "INSERT INTO utilisateurs(pseudo,password,email,sexe,situation,apropos) VALUES (:pseudo,:password,:email,:sexe,:situation,:apropos)"; $result = $bdd->prepare($sql); $result->bindValue('pseudo', $pseudo, PDO::PARAM_STR); $result->bindValue('password', $password, PDO::PARAM_STR); $result->bindValue('email', $email, PDO::PARAM_STR); $result->bindValue('sexe', $sexe, PDO::PARAM_STR); $result->bindValue('situation', $situation, PDO::PARAM_STR); $result->bindValue('apropos', $apropos, PDO::PARAM_STR); $result->execute(); } ?>
Cordialement,
Thorak83
hharchi9
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
24
Modifié par hharchi9 le 29/04/2015 à 22:14
Modifié par hharchi9 le 29/04/2015 à 22:14
Bonsoir,
Voici votre code une fois passé en PDO :
Après avoir vu quelques exemples sur le web, on se fait vite à la syntaxe en PDO.
Bonne soirée,
Cordialement,
hharchi9.
Voici votre code une fois passé en PDO :
<?php try { // On se connecte à MySQL $bdd = new PDO(sprintf('mysql:host=%s;dbname=%s', $host, $dbname), $user, $pass); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } function inscrire_utilisateur($pseudo,$password,$email,$sex e,$sittuation,$apropos) { $password=sha1($password); //On prepare l'insertion $requete=prepare("INSERT INTO utilisateurs(id,pseudo,password,email,sexe,situati on,apropos) VALUES(:pseudo, :password, :email, :sexe, :situation, :apropos)"); $requete->execute(array( ':pseudo'=> $pseudo, ':password'=>$password, ':email'=> $email, ':sexe' => $sexe, ':situation' => $situation, ':apropos' => $apropos)); $requete->CloseCursor() //on ferme la base de donnée } ?>
Après avoir vu quelques exemples sur le web, on se fait vite à la syntaxe en PDO.
Bonne soirée,
Cordialement,
hharchi9.
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
29 avril 2015 à 22:23
29 avril 2015 à 22:23
Merci d'avoir répondu! pouvez vous m'aider, post du dessus svp ?
hharchi9
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
24
29 avril 2015 à 23:33
29 avril 2015 à 23:33
Oups quelques fautes de frappe ont eu raison de moi ! Voici le script fonctionnel :
<?php try { // On se connecte à MySQL $bdd = new PDO(sprintf('mysql:host=%s;dbname=%s', $host, $dbname), $user, $pass); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } function inscrire_utilisateur($pseudo,$password,$email,$sexe,$situation,$apropos) { $password=sha1($password); //On prepare l'insertion $requete=prepare("INSERT INTO utilisateurs(id,pseudo,password,email,sexe,situati on,apropos) VALUES(:pseudo, :password, :email, :sexe, :situation, :apropos)"); $requete->execute(array( ':pseudo'=> $pseudo, ':password'=>$password, ':email'=> $email, ':sexe' => $sexe, ':situation' => $situation, ':apropos' => $apropos)); $requete->CloseCursor(); //on ferme la base de donnée } ?>
jordane45
Messages postés
38429
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 février 2025
4 735
>
hharchi9
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
Modifié par jordane45 le 2/05/2015 à 01:00
Modifié par jordane45 le 2/05/2015 à 01:00
Bonjour hharchi9 ,
Ton code me semble tout à faire correcte.... toutefois je conseillerais la chose suivante :
- Sortir la requête du prépare
- Sortir l'Array des variables du Execute.
- Prévoir le cas où certains paramètres de la fonction ne seraient pas envoyés
- Ne pas oublier l'objet PDO au moment d'appeller le prépare
- Ne pas mettre l'ID dans le INSERT (surtout si il est auto-incrémenté)
- Ne pas hésiter à faire des retours à la ligne pour présenter les requêtes.. ça les rend plus lisibles.
Donc en gros :
Ton code me semble tout à faire correcte.... toutefois je conseillerais la chose suivante :
- Sortir la requête du prépare
- Sortir l'Array des variables du Execute.
- Prévoir le cas où certains paramètres de la fonction ne seraient pas envoyés
- Ne pas oublier l'objet PDO au moment d'appeller le prépare
- Ne pas mettre l'ID dans le INSERT (surtout si il est auto-incrémenté)
- Ne pas hésiter à faire des retours à la ligne pour présenter les requêtes.. ça les rend plus lisibles.
Donc en gros :
//---------------------------------------------// // Connexion à la BDD via PDO //---------------------------------------------// $host = "localhost"; $dbname = "nom_de_la_base"; $user = "root"; $pass = ""; try { $dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass,array(PDO::ATTR_PERSISTENT => true)); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { print "Erreur !: " . $e->getMessage() . "<br/>"; die(); } function inscrire_utilisateur($pseudo,$password,$email='',$sexe='M',$situation='',$apropos=''){ $password=sha1($password); $sql = "INSERT INTO utilisateurs (pseudo ,password ,email ,sexe ,situation ,apropos) VALUES(:pseudo , :password , :email , :sexe , :situation , :apropos)"; $params = array( ':pseudo'=> $pseudo, ':password'=>$password, ':email'=> $email, ':sexe' => $sexe, ':situation' => $situation, ':apropos' => $apropos ); //On prepare l'insertion $requete= $dbh->prepare($sql); $result = $requete->execute($params); return $result ; } ?>
hharchi9
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
24
29 avril 2015 à 23:43
29 avril 2015 à 23:43
En effet, je n'avais pas vu que le id était entré dans le insert. Je suis tout à fait d'accord avec toi jordane45 !
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
30 avril 2015 à 11:59
30 avril 2015 à 11:59
Que Dieu vous garde ! merci beaucoup, résolu
29 avril 2015 à 22:17
Et pour le script register.php :
Pour la partie ligne 47 :
Je mets quoi à la place ? car il me dit "Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\wamp\www\rs\pages\register.php on line 47"
29 avril 2015 à 22:30
29 avril 2015 à 22:35
Modifié par hharchi9 le 29/04/2015 à 22:38
29 avril 2015 à 22:41