IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

migration de mysql vers pdo


Sujet :

Langage PHP

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Mai 2007
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2007
    Messages : 47
    Par d�faut migration de mysql vers pdo
    Bonjour,

    Je suis perdu.

    J'ai fait le formulaire suivant :

    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form action="register.php" method="post"><br /><br />
    Nom : <input type="text" name="name" size="40" maxlength="256" /><br /><br />
    Pseudo : <input type="text" name="login" size="40" maxlength="256" /><br /><br />
    Mot de Passe : <input type="password" name="pass" size="40" maxlength="256" /><br /><br />
    Adresse e-mail : <input type="text" name="email" size="40" maxlength="256" /><br /><br />
    Localisation : <input type="text" name="location" size="40" maxlength="256" /><br /><br />
    Site internet / Blog : <input type="text" name="website" size="40" maxlength="256" /><br /><br />
    <input type="submit" value="S'inscrire" />
    </form>

    Rien de bien compliqu� jusque l�. Puis je veux �crire ces infos dans une base de donn�es mysql :

    Code php : 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
     
    <?php
     
     
     
    	if (isset($_POST['login']) and isset($_POST['pass']))
     
    	    {
    		  if ($_POST['login'] != "" and $_POST['pass'] != "")
    		   {
    		   		$nom = $_POST['name'];
    				$pseudo = $_POST['login'];
    				$motdepasse = $_POST['pass'];
    				$email = $_POST['email'];
    				//$date_creation = now();
    				$localisation = $_POST['location'];
    				$site = $_POST['website']; 
    				$pass = md5 ($motdepasse);
     
     
    				require ("connexion.php");
     
    				$query = 'INSERT INTO users (user_login, user_password, user_email, user_name, user_location, user_website) VALUES ($pseudo, $pass, $email, $nom, $localisation, $site)';
    				$stmt = $bdd->prepare($query);
     
     
     
    				$stmt->execute();
     
    							 }
    		   		   else
    		   {
    		   echo 'Les informations saisies sont incorrectes !';
    		   }
    		}
    ?>

    Au final, �a n'�crit rien du tout dan ma bdd et je ne comprends pas pourquoi si ce n'est que comme je d�bute sur PDO je dois avoir loup� qqch mais je ne sais pas trop quoi.

    Quelqu'un peut m'aider, svp ?

  2. #2
    Expert confirm�

    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par d�faut
    Regardes les exemples de la doc http://php.net/manual/fr/pdo.prepare.php
    Tu trouve que cela ressemble � ce que tu as fait ?

    EDIT : Si tu fais une requ�te pr�par�e, il faut :
    1/ Utiliser des marqueurs nomm�s ou interrogatifs pour symboliser tes variables dans la pr�paration de la requ�te
    2/ Associer tes marqueurs avec bindParam ou bindValue avant d'utiliser execute(), ou sinon passer le tableau des marqueurs et de leur valeur dans execute()

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Mai 2007
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2007
    Messages : 47
    Par d�faut
    J'avais vu cette doc et j'ai recopi� aussi la m�thode avec bindparam mais j'avais tjs le m�me probl�me !!

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Mai 2007
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2007
    Messages : 47
    Par d�faut
    Bon, j'ai tout relu et corrig� le code.

    J'obtiens donc ceci :

    Code php : 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
     
    <?php
    	if (isset($_POST['login']) and isset($_POST['pass']))
     
    	    {
    		  if ($_POST['login'] != "" and $_POST['pass'] != "")
    		   {
    		   		$nom = $_POST['name'];
    				$pseudo = $_POST['login'];
    				$motdepasse = $_POST['pass'];
    				$email = $_POST['email'];
    				$localisation = $_POST['location'];
    				$site = $_POST['website']; 
    				$pass = md5 ($motdepasse);
     
    				require ("connexion.php");
     
    				$query = 'INSERT INTO users (user_login, user_password, user_email, user_name, user_location, user_website) VALUES (:pseudo, :pass, :email, :nom, :localisation, :site)';
    				$stmt = $bdd->prepare($query);
     
    				$stmt->bindParam(':pseudo', $pseudo);
    				$stmt->bindParam(':pass', $pass);
    				$stmt->bindParam(':email', $email);
    				$stmt->bindParam(':nom', $nom);
    				$stmt->bindParam(':localisation', $localisation);
    				$stmt->bindParam(':site', $site);
     
    				$stmt->execute();
    			 }
    		   		   else
    		   {
    		   echo 'Les informations saisies sont incorrectes !';
    		   }
    		}
    ?>

    Ce code est fonctionnel...

    ... mais... �a m'a pas l'air tr�s propre tout �a...

    Vous en pensez quoi ?

  5. #5
    Expert confirm�

    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par d�faut
    C'est parfaitement propre.

    Cela dit souvent on utilise un tableau avec les marqueurs et leurs valeurs correspondantes que l'on passe en param�tre dans execute(). C'est souvent plus rapide et pratique que de binder s�par�ment les valeurs.

    Mais d'un autre c�t� le fait de binder s�par�ment les variables permet de leur attribuer s�par�ment un type sp�cifique (option que tu n'utilise pas dans ton exemple), alors que quand on passe un tableau le mode chaine de caract�re (PDO:: PARAM_STR) est utilis� par d�faut pour toutes les valeurs du tableau.


    EDIT: Utilises plut�t l'op�rateur "&&" � la place de "and", ce n'est pas tout � fait la m�me chose et "&&" � un comportement plus pr�visible dans les conditions multiples (les priorit�s d'ex�cution ne sont pas les m�mes).

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Mai 2007
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2007
    Messages : 47
    Par d�faut
    ok je remplace mes and par des &&

    autre chose ; j'aimerais afficher un texte selon que mon enregistrement s'est bien pass� ou non.

    avec mysql, j'aurais fait un if (!$stmt) mais l� �a n'a pas l'air de marcher.

    une id�e ?

Discussions similaires

  1. migration de mysql vers postgresql
    Par ANISSS dans le forum PostgreSQL
    R�ponses: 6
    Dernier message: 18/05/2007, 15h19
  2. R�ponses: 3
    Dernier message: 08/03/2007, 10h53
  3. Migration de Mysql vers Sql Server
    Par bluecurve dans le forum MS SQL Server
    R�ponses: 1
    Dernier message: 06/02/2007, 00h21
  4. Re besoin de vous pour migration de mysql vers dsl server
    Par scaleo dans le forum MS SQL Server
    R�ponses: 4
    Dernier message: 07/11/2006, 13h45
  5. [SGBD] Migration de mysql vers PostgreSQL ?
    Par haffouff dans le forum SQL Proc�dural
    R�ponses: 12
    Dernier message: 25/05/2006, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo