Page 1 sur 1

Requête préparée PDO s'enregistre en double dans Mysql

Posté : 24 nov. 2006, 18:20
par kroun
bonjour, je viens de modifier un de mes scripts d'insertion de données dans mysql pour qu'il utilise PDO comme indiqué dans "php 5 avancé", tout fonctionne, seulement, à chaque fois les données sont inserées deux fois.

Si quelqu'un a une idée, voici mon code :
<?php

	//appel du fichier de sessions
	include_once('inc/secure.inc.php');
	
	// Appel du fichier de connexion via PDO
	include_once('inc/connexion.inc.php');
	
	// Préparation de la requête
	$sql = 'INSERT INTO liste_prod (libel_prod, product_prod, pays_prod, mat_prod, coloris_prod, dim_prod, descript_prod, image_prod, categ_prod) VALUES ( :libel , :product , :pays , :mat , :coloris , :dim , :descript , :image , :categ)';
	
	$stmt = $dbh->prepare($sql);
	
	$libel = $_POST['libel'];
	$product = $_POST['artisan'];
	$provenance = $_POST['provenance'];
	$mat = $_POST['matiere'];
	$coloris = $_POST['coloris'];
	$dim = $_POST['dimensions'];
	$descript = $_POST['description'];
	$image = $_FILES['image']['name'];
	$categ = $_POST['categ'];
	
	//Envoi de l'image
	$nom_destination = '../img/img_pod/';
	move_uploaded_file($image, $nom_destination);
	
	$valeurs = array(':libel'=>$libel, ':product'=>$product, ':pays'=>$provenance, ':mat'=>$mat, ':coloris'=>$coloris, ':dim'=>$dim, ':descript'=>$descript, ':image'=>$image, ':categ'=>$categ);
	
	
	// Insertion des valeurs
	$stmt->execute($valeurs);
	$stmt->execute();
?>
merci d'avance ! :wink:

Posté : 24 nov. 2006, 18:40
par Ajoloca
Bonjour,

Pour quoi ceci ?
// Insertion des valeurs
$stmt->execute($valeurs);
$stmt->execute();
$stmt->execute(); s'utilise normalement avec '$stmt->BindParam()'
$stmt->execute($valeurs); seul devrait suffire.

Posté : 24 nov. 2006, 18:49
par kroun
En fait, j'ai repris la synthaxe de l'exemple d'utilisation de PDO du livre "php5 avancé".

Effectivement juste avec $stmt->execute($valeurs); ca marche

Merci.