Procedural Mysqli を使用してテーブルに挿入しようとしています。エラーを投稿することも、情報をデータベースに投稿することもありません。これが私のコードです:
$query = "INSERT INTO Accounts (FirstName, LastName, Username, Password, Access) VALUES ({$_POST['FirstNameTbx']}, {$_POST['LastNameTbx']}, {$_POST['UsernameTbx']}, {$_POST['PasswordTbx']}, {$_POST['AccessDDL']})";
mysqli_query($link, $query);
mysqli_close($link);
$Error .= "$query";
更新:準備済みステートメントに変更しました。現在、次のようになっています。
警告: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: 型定義文字列の要素数が、19 行目の /home/bryantrx/public_html/ec/add_user.php のバインド変数の数と一致しません
バインドする必要がある変数は 5 つだけで、UserID は自動インクリメントされるため、ステートメントでバインドまたは参照する必要はありません。
if ($stmt = $link->prepare("INSERT INTO Accounts (FirstName, LastName, Username, Password, Access) VALUES (?, ?, ?, ?, ?)")){
$stmt->bind_param($_POST['FirstNameTbx'], $_POST['LastNameTbx'], $_POST['UsernameTbx'], $_POST['PasswordTbx'], $_POST['AccessDDL']);
$stmt->execute();
$Error .= "success";
$stmt->close();
} else {
echo $link->error;
}