J'arrive pas à ecrire dans ma BDD

Fermé
Profil bloqué - 18 janv. 2013 à 11:18
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 - 18 janv. 2013 à 11:49
j'arrive pas écrire dans ma BDD, or pourtant j'ai suivie progression du professeur .

j'ai tout fait, on affiche des messages d'erreur (qui me vont savoir que les variable sont indéfinie). besoin de votre aide.

voici me code en question.

<?php

try

{

$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');

}

catch(Exception $e)

{

die('Erreur : '.$e->getMessage());

}

$req = $bdd->prepare('INSERT INTO inscrip(nom, mail, age, pays, date) VALUES('colmix', 'sraphinthsaki@facebook.com',45,'France', '20/01/2013')');

$req->execute(array('nom' => $nom,

'mail' => $mail,

'age' => $age,

'pays' => $pays

'date' => $date,

));



echo 'bien ajouter !';

?>



lorsque je l'exécute on affiche "bien ajouter " comme l'indique mon echo
A voir également:

1 réponse

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
Modifié par ThEBiShOp le 18/01/2013 à 11:51
Bonjour

je pense que tu as un simple problème dans l'écriture de ta requête.

tu écris ceci :

'INSERT INTO inscrip(nom, mail, age, pays, date) VALUES('colmix', 'sraphinthsaki@facebook.com',45,'France', '20/01/2013')'


or comme ta chaîne est encapsulée par un ', elle va s'arrêter dès qu'elle va rencontrer un autre '
alors pour résoudre ce problème, tu as 2 solutions, soit tu "échappes" les ' au sein de ta requête (avec le \), soit tu encapsules ta requête avec le caractère "

donc soit :

$req = $bdd->prepare("INSERT INTO inscrip(nom, mail, age, pays, date) VALUES('colmix', 'sraphinthsaki@facebook.com',45,'France', '20/01/2013')"); 


soit :

$req = $bdd->prepare('INSERT INTO inscrip(nom, mail, age, pays, date) VALUES(\'colmix\', \'sraphinthsaki@facebook.com\',45,\'France\', \'20/01/2013\')'); 


Moi je te conseille de mettre d'abord ta requête dans une variable, comme ça si tu as un soucis de syntaxe, tu pourras avoir une erreur php qui t'indiquera que ta requête est mal écrite.

$larequete = "INSERT INTO inscrip(nom, mail, age, pays, date) VALUES('colmix', 'sraphinthsaki@facebook.com',45,'France', '20/01/2013')"; 
$req = $bdd->prepare($larequete); 
1