Page 1 sur 1

Problème insertion multiple

Posté : 12 mars 2011, 13:48
par olivier1978
Bonjour,

Je fais des tests pour mettre à jour et insérer des données dans une BD MySQL, en utilisant PHP. Je fais une insertion toute simple, etle souci, c'est que ma requête est appelée 3 fois (j'ai 3 éléments insérés, au lieu d'un seul). Voici comment je fais :

Fichier index.php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
		
		<?
				include("_connexion.php");
				
				$insert_query = 'INSERT INTO `test_table` (`title`) VALUES("test_title");';
				mysql_query($insert_query, $link) or die("Probleme d'insertion");
		?>
//...
Fichier _connexion.php :
<?
	// Paramètres persos
	$host = "localhost";
	$user = "root";
	$pass = "xxxxxxxx";
	$bdd = "test_db";
	
	// connexion
	try
	{
		$link = mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
		mysql_select_db("$bdd", $link) or die("Impossible de selectionner la DB");
	}
	catch(Exception $e)
	{
		die('Erreur : ' . $e->getMessage());
	}
?>
Donc, rien de vraiment extraordinaire ... Quand j'affiche la page index.php, je m'attends à ce qu'une entrée soit ajoutée à ma table. Or, ce n'est pas le cas, il y en a 3.
Où est-ce que je fais une erreur ?

Evidemment, quand je mets la requête directement dans phpMyAdmin, ça n'insère qu'un seul élément ...

D'avance merci

Olivier

Re: Problème insertion multiple

Posté : 12 mars 2011, 14:20
par xTG
Si le script est exécuté trois fois c'est qu'il est appelé trois fois ou bien que ta page est rechargée trois fois...
Pour éviter les doublons sinon passes le champs title en index UNIQUE, ou bien tu fais une requête SELECT vérifiant que l'enregistrement n'existe pas déjà avant de faire ton insert.

Re: Problème insertion multiple

Posté : 12 mars 2011, 14:23
par olivier1978
Si le script est exécuté trois fois c'est qu'il est appelé trois fois ou bien que ta page est rechargée trois fois...
Sûrement, mais je comprends pas bien pourquoi ... Je n'appuie qu'une unique fois sur F5 ...
Pour éviter les doublons sinon passes le champs title en index UNIQUE, ou bien tu fais une requête SELECT vérifiant que l'enregistrement n'existe pas déjà avant de faire ton insert.
Oui, bon, ok, ça peut être une solution