Connexion base de données PDO
Résolu
Zakarya93
Messages postés
984
Date d'inscription
Statut
Membre
Dernière intervention
-
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Comment puis-je organiser mon fichier "functions.php" en PDO ?
Sachant que le script mysql est :
s'il vous plait je bloque trop
vidéo à l'appui : https://www.youtube.com/watch?v=ZP422fZDcCQ
Comment puis-je organiser mon fichier "functions.php" en PDO ?
Sachant que le script mysql est :
<?php //connexion à la base de données mysql_connect('localhost','root','')or die('error'); mysql_select_db('rs')or die('Bdd introuvable'); mysql_query('SET NAMES utf8'); //function qui va se charger d'inscrire l'utilisateur function inscrire_utilisateur($pseudo,$password,$email,$sex e,$sittuation,$apropos) { $password=sha1($password); mysql_query("INSERT INTO utilisateurs(id,pseudo,password,email,sexe,situati on,apropos) VALUES(','$pseudo','$password','$email','$sexe','$ situation','$apropos',' '")or die(mysql_error()); } ?>
s'il vous plait je bloque trop
vidéo à l'appui : https://www.youtube.com/watch?v=ZP422fZDcCQ
A voir également:
- Connexion base de données PDO
- Gmail connexion - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
- Connexion chromecast - Guide
- Tnt base de données vide - Forum TV & Vidéo
2 réponses
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
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.
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 } ?>
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 ; } ?>
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"