0

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 つのエラー メッセージが表示されるのはなぜですか? どんな助けでも大歓迎です。

4

2 に答える 2