Bonjour,
Alors j'ai résolu à priori ce problème pour l'instant...
J'ai procédé comme suit:
un ID en autoincrement (id_auto) et un champs id_transaction....
Ensuite pour faire mes enregistrement, je procède à la première insertion, je récupère mon id_auto,
je fait le second enregistrement (en indiquant l'id du premier) et je met à jour le premier...
Pas clair, ça donne ceci:
/// première requête d'insertion
$sql_insert1 = "INSERT INTO
`transactions` (
`id_auto`,
`id_transaction`,
...
) VALUES (
NULL,
0,
...
)";
$insert1 = mysql_query($sql_insert1);
// récupération de l'id d'enregistrement
$id_insert1 = mysql_insert_id();
// update du champ id_transaction sur le premier enregistrement
$sql_update1 = 'UPDATE transactions SET id_transaction='.(int)$id_insert1.' WHERE id_auto = '.(int)$id_insert1;
$update1 = mysql_query($sql_update1);
// insertion de la deuxième ligne avec l'id_transaction déjà rempli
$sql_insert2 = "INSERT INTO
`transactions` (
`id_auto`,
`id_transaction`,
...
) VALUES (
NULL,
".(int)$id_insert1.",
...
)";
$insert2 = mysql_query($sql_insert2);
Alors les questions à ce sujet:
-Y a t'il moyen d'éviter l'update du milieu via un genre de
INSERT INTO
`transactions` (
`id_auto`,
`id_transaction`,
...
) VALUES (
NULL,
id_auto,
...
)
A priori non m'enfin sais-t-on jamais
Ensuite est-ce que ça vous parait sécurisé par rapport aux accès concurrents?
En gros si deux processus sont lancé exactement en même temps, est-ce que mysql_insert_id() est suffisamment lié à php, afin de récupérer le bon id?
Normalement oui?
En supplément j'ai un autre problème de comptage de résultats sur cette table... problème posté ici:
sql-bases-donnees/comptage-enregistreme ... ml#p339740
Merci encore!