Bonjour à tous

J'essaye d'enregistrer dans une seule requête, deux tables différentes donc une qui devra contenir plusieurs lignes générée en php (je sais pas si c'est possible..)

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$req2 = $bdd->prepare("
		INSERT INTO dbo.ins(Date_ins, Id_Type, Id_sta) VALUES (CURRENT_TIMESTAMP, :type, :idsta);
 
		INSERT INTO dbo.Sujet(Id_ins, Id_ep, Id_qu) 
		VALUES ((SELECT Id_ins FROM dbo.ins WHERE Date_ins = CURRENT_TIMESTAMP), :idep, :idqu);
		");
 
 
$req2->execute(array(
		'type' => 1,
		'idsta' => $row['Id_sta'],
		'idep' => $_POST['idep'],
		'idqu' => ?????,
		));
 
?>
Pour info, $row['Id_sta'] est généré autre part et fonctionne parfaitement

Mon problème est le suivant :

Le premier INSERT INTO fonctionne..

Mais le idqu du deuxième est le résultat d'une autre requête (je peux donc le récupérer sous forme de tableau) mais je ne sais pas comment écrire la requête pour que le deuxième INSERT INTO fasse plusieurs lignes, le nombre de lignes et la valeur de idqu changeront a chaque requête

Autre question :

Utiliser WHERE Date_ins = CURRENT_TIMESTAMP est risqué ? ou bien la valeur d'un CURRENT_TIMESTAMP sera toujours la même peu importe le temps d'exécution de la requête (par exemple si la requête met 1seconde a s'effectuer, est ce que la deuxième fois que j'appelle CURRENT_TIMESTAMP, il pourrait ne pas avoir la même valeur que la première fois et donc fausser le WHERE) ?

Merci d'avance pour vos réponses !