「セッション」テーブルにデータを挿入すると思われる mysqli/php コードを以下に示します。以前は問題なくデータを挿入していましたが、以下のコードは変更していません。
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$time = str_replace(array(' Hrs ', ' Mins ', ' Secs'),
array(':', ':', ''), $_SESSION['durationChosen']);
for ($i = 1, $n = $_SESSION['sessionNum']; $i <= $n; ++$i)
{
$insertsql = "
INSERT INTO Session
(SessionId, SessionTime,
SessionDate, SessionWeight,
SessionDuration, TotalMarks,
ModuleId, TeacherId, Room)
VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?)
";
if (!$insert = $mysqli->prepare($insertsql)) {
// Handle errors with prepare operation here
}
$sessid = $_SESSION['id'] . ($n == 1 ? '' : $i);
$sessdate = date("Y-m-d", strtotime($_SESSION['dateChosen']));
$insert->bind_param("sssssssss", $sessid,
$_SESSION['timeChosen'], $sessdate,
$_SESSION['textWeight'], $time, $_SESSION['textMarks'],
$_SESSION['module'], $teacherid, $_SESSION['rooms']);
$insert->execute();
if ($insert->errno) {
// Handle query error here
}
$insert->close();
}
}
私が言ったように、このコードは以前は機能していましたが、それ以来コードを変更していません。しかし、データベース(phpmyadmin)のテーブルを変更したため、データベースにデータが挿入されていないかどうか思い出せません。
誰でも前にテーブルの作成を確認して、問題があるかどうかを確認できますか? 外部キーとして SessionId を含む他のテーブルに問題がある可能性はありますか?
以下は、SHOW CREATE TABLE セッションを使用したテーブル作成です。
CREATE TABLE `Session` (
`SessionId` varchar(10) NOT NULL,
`SessionTime` time NOT NULL,
`SessionDate` date NOT NULL,
`SessionWeight` int(3) NOT NULL,
`SessionDuration` time NOT NULL,
`TotalMarks` int(5) NOT NULL,
`FileId` varchar(10) DEFAULT NULL,
`ModuleId` varchar(10) NOT NULL,
`TeacherId` int(4) NOT NULL,
`Room` varchar(10) NOT NULL,
PRIMARY KEY (`SessionId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8