Problème insertion multiple

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème insertion multiple

Re: Problème insertion multiple

par olivier1978 » 12 mars 2011, 14:23

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

Re: Problème insertion multiple

par xTG » 12 mars 2011, 14:20

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.

Problème insertion multiple

par olivier1978 » 12 mars 2011, 13:48

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