以下に「質問」データベーステーブルがあります。
SessionId (PK) QuestionId (PK) QuestionContent
MUL 1 What is 2+2 and 3+3?
MUL 2 Name three things you will find in a car?
MUL 3 What are the four seasons?
以下は、mysqliで受け取ったエラーです。
242行目の/.../のキー「PRIMARY」の重複エントリ「RZC-1」
警告:mysqli_stmt :: execute():( 23000/1062):242行目の/.../のキー「PRIMARY」のエントリ「RZC-2」が重複しています
警告:mysqli_stmt :: execute():( 23000/1062):242行目の/.../のキー「PRIMARY」のエントリ「RZC-3」が重複しています
質問テーブルで「SessionId」と「QuestionId」の両方が主キーであると述べたのに、重複したエントリでエラーが発生するのはなぜですか。両方とも複合キーであることを示すためにSQLステートメントを実行する必要がありますか?
以下は、「Question」テーブルに値を挿入するmysqliコードです。
var_dump($_POST);
$i = 0;
$c = count($_POST['numQuestion']);
for($i = 0; $i < $c; $i++ ){
$questionsql = "INSERT INTO Question (SessionId, QuestionId, QuestionContent)
VALUES (?, ?, ?)";
$sessid = $_SESSION['id'] . ($_SESSION['initial_count'] > 1 ? $_SESSION['sessionCount'] : '');
if (!$insert = $mysqli->prepare($questionsql)) {
// Handle errors with prepare operation here
}
$insert->bind_param("sis", $sessid, $id, $_POST['questionText'][$i]);
$insert->execute();
if ($insert->errno) {
// Handle query error here
}
$insert->close();
}
アップデート:
DESCRIBE質問;
Field Type Null Key Default Extra
SessionId varchar(10) NO PRI NULL
QuestionId int(10) NO PRI NULL
QuestionContent varchar(5000) NO NULL