こんにちは、挿入ステートメントと更新ステートメントがあります。更新は正常に機能します。category_of_taxom と number_of_taxom の 2 つのフィールドがあります。更新により、いずれかを変更でき、レコードが更新されます。
ただし、ほとんど同じ挿入は、まだ存在しない場合はレコードを作成します。両方のオプションに値を入力すると機能しますが、一方だけを入力すると何も送信されませんか? コードは非常に複雑で、すべての変数名がありますが、別の if ステートメントか何かが必要になると思いますか? 1つだけが入力されているかどうかを確認するには? それとも、これはすべてのパラメータに入力が必要な PDO のものですか?
$stmt6 = $conn ->prepare("UPDATE record_tbl SET category_of_taxom =?, number_of_taxom =? WHERE sheet_id = ? AND line = 6");
$stmt6->bindParam(1, $category_of_taxom66);
$stmt6->bindParam(2, $number_of_taxom66);
$stmt6->bindParam(3, $sheet_id);
$category_of_taxom66 = $_POST['categorySelect6fromDB'];
$number_of_taxom66 = $_POST['number_of_taxom6'];
$stmt6->execute();
echo "Saved!";
}
else
{
if (isset($_POST['categorySelect6fromDB'])) {
$category_of_taxom66 = $_POST['categorySelect6fromDB'];
$param_cat = PDO::PARAM_INT;
}
else {
$category_of_taxom66 = NULL;
$param_cat = PDO::PARAM_NULL;
}
if (isset($_POST['number_of_taxom6'])) {
$number_of_taxom66 = $_POST['number_of_taxom6'];
$param_num = PDO::PARAM_INT;
}
else {
$number_of_taxom66 = NULL;
$param_num = PDO::PARAM_NULL;
}
$stmt66 = $conn ->prepare("INSERT INTO record_tbl (line, taxom_id, category_of_taxom, number_of_taxom, sheet_id) VALUES (6,6,?,?,?)");
$stmt66->bindParam(1, $category_of_taxom66, $param_cat);
$stmt66->bindParam(2, $number_of_taxom66, $param_num);
$stmt66->bindParam(3, $sheet_id);
$stmt66->execute();
echo "New Record Inserted!";
}
}