SQL インジェクションを排除できるように、mysqli コードを Web ページに埋め込もうとしています。これが私のコードが今どのように見えるかです:
$gYear = $_POST["year"];
$gYear2 = $_POST["year2"];
$gMonth = $_POST["month"];
$gSelect = $_POST["location"];
$query = $conn->prepare("SELECT $gSelect, Year FROM unemployed WHERE year BETWEEN '$gYear' AND '$gYear2' and month='$gMonth'");
$query->bind_param('ssss', $gyear, $gYear2, $gMonth, $gSelect);
$query->execute();
$result = $query->get_result();
while ($row = $result->fetch_object()){
// do something with gathered rows
}
フォームが送信されると、2 つのエラーが発生します。これが彼らの言うことです:
Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of variables doesn't match number of parameters in prepared statement in
と
Fatal error: Call to undefined method mysqli_stmt::get_result() in
私の問題が何であるか本当にわかりません。PHP で SQL インジェクションを防ぐにはどうすればよいですか? に記載されているルールに従おうとしました。. 私の問題が何であるかを知っている人はいますか?これら 2 つのエラー メッセージが表示されるのはなぜですか? どんな助けでも大歓迎です。