INSERT doublon sur clé unique => bloque ou bloque pas

INSERT doublon sur clé unique => bloque ou bloque pas - PHP - Programmation

Marsh Posté le 22-01-2006 à 11:13:34    

admettons: j'ai une serie de commandes sql (dans du php) c'est pourquoi je ne sais pas trop dans quelle categorie poster...
 
$sql = mysql_query("INSERT INTO `moteur` (`url`) VALUES ('http://www.site1/') OR DIE ("1" );
$sql = mysql_query("INSERT INTO `moteur` (`url`) VALUES ('http://www.site2/') OR DIE ("2" );
$sql = mysql_query("INSERT INTO `moteur` (`url`) VALUES ('http://www.site3/') OR DIE ("3" );
$sql = mysql_query("INSERT INTO `moteur` (`url`) VALUES ('http://www.site1/') OR DIE ("1" );
$sql = mysql_query("INSERT INTO `moteur` (`url`) VALUES ('http://www.site6/') OR DIE ("6" );
$sql = mysql_query("INSERT INTO `moteur` (`url`) VALUES ('http://www.site7/') OR DIE ("7" );
etc etc etc
 
Le deuxieme INSERT de site1 va me renvoyer l'erreur "Duplication" car le champ a été défini comme unique.
Jusque là c'est normal
 
Mais le code va-t-il continuer à s'executer apres ?  
site6 et site7 seront-ils insérés ?


---------------
http://www.ypikay.com
Reply

Marsh Posté le 22-01-2006 à 11:13:34   

Reply

Marsh Posté le 22-01-2006 à 11:50:42    

bé non : die() stoppe l'éxécution du script courant. Donc il affichera "1", puis pouf fini.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 22-01-2006 à 13:37:54    

ok. mais si je mets pas de DIE ca passera par dessus l'erreur ou pas ?
est-ce que php saute l'erreur et passe à la ligne suivante ?
parce que je suis pas mal embetté là...


---------------
http://www.ypikay.com
Reply

Marsh Posté le 22-01-2006 à 13:47:12    

pour moi ca bloque.
 
tu peux pas vérifier avant l'insertion qu'il n'y a rien en double ?
 
ou avant chaque insertion que ca n'existe pas encore ?

Reply

Marsh Posté le 22-01-2006 à 13:48:16    

si mais ca va me faire des lignes et des lignes de code à balancer....
Merci


---------------
http://www.ypikay.com
Reply

Marsh Posté le 22-01-2006 à 13:51:08    

bon je viens de tester...
j'ai viré OR DIE sur quelques doublons
par contre il bloque des que je laisse une ligne avec OR DIE
et il incrémente la base
mais c'est testé en local avec Easy PHP...


---------------
http://www.ypikay.com
Reply

Marsh Posté le 22-01-2006 à 15:47:01    

ah ca ne bloque pas alors ?
 
désolé...

Reply

Marsh Posté le 22-01-2006 à 16:43:07    

il me semble que non...
c'etait galère (voir mon petit site pour explications)


---------------
http://www.ypikay.com
Reply

Marsh Posté le 22-01-2006 à 21:14:54    

Ne pas confondre "error" et "warning". Une erreur (error) est généralement blocante. Un warning ne l'est jamais. Les erreurs d'exécution de requette survenu sur le serveur sql ne sont que des "warning" pour php.
 
L'instruction "die()" quand à elle termine le script donc si tu dis à php d'exécuter un die() quand il y a une erreur de requette sql, c'est normal que l'exécution du script s'arrête quand ca arrive.


Message édité par omega2 le 22-01-2006 à 21:15:29
Reply

Marsh Posté le 22-01-2006 à 21:16:45    

Ahhh. je ne savais pas !
merci pour ce detail ma foi important !


---------------
http://www.ypikay.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed