Requette insert

Fermé
kacimo22 Messages postés 25 Date d'inscription mercredi 24 avril 2013 Statut Membre Dernière intervention 1 mai 2016 - 25 avril 2014 à 18:40
kacimo22 Messages postés 25 Date d'inscription mercredi 24 avril 2013 Statut Membre Dernière intervention 1 mai 2016 - 28 avril 2014 à 14:17
bnj j'ai un brobleme avec ce code php ou la variable $id_ann recoit la valeur du dernier iD inseré

$bdd=new PDO('mysql:host=localhost;dbname=algerieservices','root','');
$reg=$bdd->prepare("INSERT INTO annonce VALUES('','$titre','$description','$montant','$id','$email','$telephone','$categorie','?',NOW(),'')");
$reg->execute();
$id_ann= $bdd->lastInsertId();
$reg4=$bdd->prepare("INSERT INTO image VALUES('','$id_ann','$nom_img','$chemin')");
$reg4->execute(array());

aidez moi svp de trouver l'erreur mrc.

2 réponses

Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
26 avril 2014 à 00:56
Bonsoir,

Je crois que tu n'as pas compris le principe des requêtes préparée !

le but est de passer tes variables en tant que paramètres, pour préparer la logique de la requête et éviter les injections sql.

Les doubles quotes avec variables sont a proscrire. Le temps d'exécution est bien plus lourd et le code est rendu illisible. la concaténation est à privilégier.

Sur une requête INSERT il est préférable de préciser les champs que l'on insert.

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

	$reg=$bdd->prepare('INSERT INTO annonce(
								titre,
								description,
								montant,
								id,
								email,
								telephone,
								categorie,
								symbole,
								datetime
							)
							VALUES(
								:titre,
								:description,
								:montant,
								:id,
								:email,
								:telephone,
								:categorie,
								:symbole,
								NOW())
						)';
	$values = array(
			'titre' => $titre,
			'description' => $description,
			'montant' => $montant,
			'id' => $id,
			'email' => $email,
			'telephone' => $telephone,
			'categorie' => $categorie,
			'symbole' => $symbole
		)
	$reg->execute($values);
	$id_ann= $bdd->lastInsertId();
	$reg4=$bdd->prepare('INSERT INTO image(id_ann,nom_img,chemin) VALUES(:id_ann,:nom_img,:chemin))';
	$reg4->execute(array('id_ann' => $id_ann,'nom_img' => $nom_img,'chemin' => $chemin));
0
kacimo22 Messages postés 25 Date d'inscription mercredi 24 avril 2013 Statut Membre Dernière intervention 1 mai 2016
28 avril 2014 à 14:17
merci Atropa c'est ça la solution merci beaucoup.
0