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

Eléphanteau du PHP | 13 Messages

24 nov. 2006, 18:20

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:

ViPHP
ViPHP | 1961 Messages

24 nov. 2006, 18:40

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.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 13 Messages

24 nov. 2006, 18:49

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.