thierry
2007-01-23 22:05:31 UTC
bonjour,
je suis en train de coder (en PHP) une application mettant en oeuvre une
base de données.
j'avais pris l'habitude de gérer les violations de contraintes, clé
dupliquées, comme suit
$res =& $db->query("insert...");
if ( PEAR::isError($res) ) {
//gestion de l'erreur
}
dans un script d'insertion massif j'ai systématiquement un plantage du
thread apache gérant le script.
Aprés avoir pas mal tourné en rond du coté des exceptions j'en suis
arrivé à la constatation suivante: si je procéde comme suis ... plus
d'erreur:
$res =& $db->query("select...");
if ( $res->numRows() > 0 ) {
//gestion de l'erreur
return;
}
//insert...
voilà.... qqn peut confirmer ou me dire pq ce que je faisais c'est mal.
merci d'avance
thierry
PS: le lecteur averti aura remarqué que j'utilise MDB2 de pear.php.net
je suis en train de coder (en PHP) une application mettant en oeuvre une
base de données.
j'avais pris l'habitude de gérer les violations de contraintes, clé
dupliquées, comme suit
$res =& $db->query("insert...");
if ( PEAR::isError($res) ) {
//gestion de l'erreur
}
dans un script d'insertion massif j'ai systématiquement un plantage du
thread apache gérant le script.
Aprés avoir pas mal tourné en rond du coté des exceptions j'en suis
arrivé à la constatation suivante: si je procéde comme suis ... plus
d'erreur:
$res =& $db->query("select...");
if ( $res->numRows() > 0 ) {
//gestion de l'erreur
return;
}
//insert...
voilà.... qqn peut confirmer ou me dire pq ce que je faisais c'est mal.
merci d'avance
thierry
PS: le lecteur averti aura remarqué que j'utilise MDB2 de pear.php.net