INSERT doublon sur clé unique => bloque ou bloque pas - PHP - Programmation
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.
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à...
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 ?
Marsh Posté le 22-01-2006 à 13:48:16
si mais ca va me faire des lignes et des lignes de code à balancer....
Merci
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...
Marsh Posté le 22-01-2006 à 16:43:07
il me semble que non...
c'etait galère (voir mon petit site pour explications)
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.
Marsh Posté le 22-01-2006 à 21:16:45
Ahhh. je ne savais pas !
merci pour ce detail ma foi important !
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