以下に、phpとmysqliを使用したINSERTデータベース関数があります。
for ($i = 1, $n = $_SESSION['sessionNum']; $i <= $n; $i++) {
$insertsql = "
INSERT INTO Session
(SessionName, SessionTime, SessionDate, SessionWeight, SessionDuration, TotalMarks, ModuleId, TeacherId, Room)
VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?)
";
if (!$insert = $mysqli->prepare($insertsql)) {
// Handle errors with prepare operation here
}
$sessname = $_SESSION['id'] . ($n == 1 ? '' : $i);
$sessdate = date("Y-m-d", strtotime($_SESSION['dateChosen']));
$insert->bind_param("sssisiiis", $sessname, $_SESSION['timeChosen'], $sessdate,
$_SESSION['totalWeight'], $time, $_SESSION['textMarks'],
$_SESSION['hiddenmodule'], $teacherid, $_SESSION['rooms']);
$insert->execute();
if ($insert->errno) {
// Handle query error here
}
$insert->close();
}
上記のコードは、このデータを例として以下のデータベースに一度に挿入します。
SessionId (Auto) SessionName SessionTime //etc
1 ADFGR1 01:00:00
2 ADFGR2 13:00:00
3 ADFGR2 09:00:00
SessionId
とにかく、それは自動インクリメントであり、とにかく表示されることを意味するので、上記のコードには含めていないことがわかります。
しかし、私が抱えている問題は、このインサートの下で、上記のインサートが終了したら、その下で別のインサートを実行したいということです。
$insertsession = "
INSERT INTO Session_Complete
(SessionId)
VALUES
(?)
";
if (!insertdb = $mysqli->prepare($insertsession)) {
// Handle errors with prepare operation here
}
insertdb->bind_param("i",$value);
insertdb->execute();
if (insertdb->errno) {
// Handle query error here
}
SessionId
しかし、上記の挿入で私が抱えている問題は、それらのIDをテーブルに挿入するために、最初の挿入からすでに挿入されているを必要とすることです。私の質問はSessionId
、最初の挿入からを取得して、2番目の挿入に含めることができるようにするにはどうすればよいですか?