Vous pouvez récupérer les différents identifiants d'insertion en appelant le next_result()
de MySQLi pour chaque instruction d'insertion consécutive. Autant que je sache, vous n'avez pas à stocker de résultats tant que les requêtes sont des instructions d'insertion ou quelque chose qui ne renvoie pas un ensemble de résultats.
$sql = new MySQLi("...");
$query = "INSERT STATEMENT NUMBER ONE;";
$query .= "INSERT STATEMENT NUMBER TWO;";
$query .= "INSERT STATEMENT NUMBER THREE";
$sql->multi_query($query);
// The first insert id will be available at once
$id1 = $sql->insert_id;
// The second needs to be handeled a little differently
$sql->next_result();
$id2 = $sql->insert_id;
// And lastly the third one
$sql->next_result();
$id3 = $sql->insert_id;
Vous pouvez aussi mettre cela dans une boucle si vous n'êtes pas sûr de combien de déclarations d'insertion, il y a:
$ids = array();
do
{
$ids[] = $sql->insert_id;
$sql->next_result();
} while($sql->more_results());
Ceci est un code non testé pseudo (comme vous pourriez avoir figuré), mais il faut travail.
Avez-vous essayé 'mysqli_insert_id'? –
Renvoie le dernier identifiant uniquement tous les – user453984
+1 pour l'ajout de la réponse – abel