独自の登録フォームを作成しようとしていますが、準備済みステートメントに問題があります。
アイデアは、準備されたステートメントを作成してユーザーテーブルに情報を挿入し、そこから生成されたコンテンツからinsert_idを取得して、別のinsertステートメントで使用することです
ここに私の登録スクリプトのバージョンがあります
<?php
$returnedId = '';
include "includes/dbconnect.php";
$stmt = $db->prepare("INSERT INTO `users`(`Username`, `Email`, `Password`) VALUES (?, ?, ?)");
$stmt->bind_param('sss', $_POST['username'], $_POST['email'], $_POST['password']);
$stmt->execute();
$returnedId = $stmt->insert_id;
$stmt->close();
echo $returnedId;
$allergystmt = $db->prepare("INSERT INTO 'user_allergy' ('user_id', 'allergy_id') VALUES (?, ?)");
$allergystmt->bind_param('ss', $returnedId, $_POST['check_list']);
$allergystmt->execute();
$allergystmt->close();
header('Location: index.php');
?>
最初の準備されたステートメントは正しく実行され、情報がテーブルに挿入されます。その後、$returnId 変数が正常にエコーされます。スクリプトの次は、私の 2 番目の準備済みステートメントです。実行しようとすると、次のエラーが表示されます。
致命的なエラー: 17 行目の D:\filepath\register.php の非オブジェクトに対するメンバー関数 bind_param() の呼び出し
私の変数が2番目の準備されたステートメントに運ばれていないようです。