エラーですので、私は3テーブルにデータを挿入しようとした:SQLエラー他の2がブリッジ
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
任意のより良い方法はありますか?
$insertSQL = sprintf("INSERT INTO booking (book_id,book_start_rent,book_end_rent,book_total,staff_id) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['book_id'], "text"),
GetSQLValueString($_POST['book_start_rent'], "date"),
GetSQLValueString($_POST['book_end_rent'], "date"),
GetSQLValueString($_POST['book_total'], "double"),
GetSQLValueString($_POST["state2"], "text")
/"INSERT INTO car_booking (car_id, book_id) VALUES (%s, %s)",
GetSQLValueString($_POST['state'], "text"),
GetSQLValueString($_POST['book_id'], "text")
/"INSERT INTO member_booking (mem_id, book_id) VALUES (%s, %s)",
GetSQLValueString($colname_information2, "text"),
GetSQLValueString($_POST['book_id'], "text")
);
編集:セミコロンを入れようとしました。インサートの終わりに、エラーが発生しましたsyntax error, unexpected ';'
$insertSQL = sprintf("INSERT INTO booking (book_id,book_start_rent,book_end_rent,book_total,staff_id) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['book_id'], "text"),
GetSQLValueString($_POST['book_start_rent'], "text"),
GetSQLValueString($_POST['book_end_rent'], "text"),
GetSQLValueString($_POST['book_total'], "double"),
GetSQLValueString($_POST["state2"], "text");
"INSERT INTO car_booking (car_id, book_id) VALUES (%s, %s)",
GetSQLValueString($_POST['state'], "text"),
GetSQLValueString($_POST['book_id'], "text");
"INSERT INTO member_booking (mem_id, book_id) VALUES (%s, %s)",
GetSQLValueString($colname_information2, "text"),
GetSQLValueString($_POST['book_id'], "text");
);
編集2:私は最終的に挿入することができますが、PDO
Cannot add or update a child row: a foreign key constraint fails (
car rental booking
.member_booking
, CONSTRAINTFK__member
FOREIGN KEY (mem_id
) REFERENCESmember
(mem_id
) ON DELETE CASCADE ON UPDATE CASCADE)
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {
$insertSQL = sprintf("INSERT INTO booking (book_id,book_start_rent,book_end_rent,book_total,staff_id) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['book_id'], "text"),
GetSQLValueString($_POST['book_start_rent'], "text"),
GetSQLValueString($_POST['book_end_rent'], "text"),
GetSQLValueString($_POST['book_total'], "double"),
GetSQLValueString($_POST["state2"], "text"));
$insertSQL2 = sprintf("INSERT INTO car_booking (car_id, book_id) VALUES (%s, %s)",
GetSQLValueString($_POST['state'], "text"),
GetSQLValueString($_POST['book_id'], "text") );
$insertSQL3 = sprintf("INSERT INTO member_booking (mem_id, book_id) VALUES (%s, %s)",
GetSQLValueString($colname_information2, "text"),
GetSQLValueString($_POST['book_id'], "text") );
**生成された** SQLにエラーがあります。それを最初に見てください。 –
1つのクエリで1つの挿入を実行できます(マルチクエリenvを使用しない場合)。あなたは3つの分離した挿入を実行する必要があります...エラーは単純にあなたが持っていないです。 (セミコロン)を挿入します。 – scaisEdge
1)mysqliのmulti_queryを使用していない限り、同じクエリで3つの挿入をすべて行うことはできません。それらを分けてください。 2)あなたはSQLインジェクションのためにオープンしています。 PDOまたはmysqliを使用していることを確認し、プリペアドステートメントとパラメータバインドを使用してください。 – aynber