사용자가 경제 데이터 요구 사항을 선택할 수 있도록 드롭 다운 상자를 설정했습니다. 나는 mysqli를 사용하여 SQL 주입을 막으려 고하고 있지만, 운이 없다. 여기 내 코드 :SQL 주입을 막으려 고 시도
$gYear = $_POST["year"];
$gYear2 = $_POST["year2"];
$gMonth = $_POST["month"];
$gSelect = $_POST["location"];
switch($_POST['location']){
case "loc1":
$column = "Fayette";
break;
case "loc2":
$column = "Henry";
break;
case "loc3":
$column = "Randolph";
break;
case "loc4":
$column = "Rush";
break;
case "loc5":
$column = "Union";
break;
case "loc6":
$column = "Wayne";
break;
case "loc7":
$column = "INCounties";
break;
case "loc8":
$column = "Indiana";
break;
case "loc9":
$column = "Butler";
break;
case "loc10":
$column = "Darke";
break;
case "loc11":
$column = "Mercer";
break;
case "loc12":
$column = "Preble";
break;
case "loc13":
$column = "OHCounties";
break;
case "loc14":
$column = "Ohio";
break;
case "loc15":
$column = "US";
break;
}
$query = $conn->prepare("SELECT $column, Year, Month, FROM unemployed WHERE year BETWEEN ? AND ? and month= ?");
$query->bind_param('s', $gyear, $gYear2, $gMonth);
$query->execute();
$result = $query->get_result();
echo"<table>";
echo "<tr><th>Year</th><th>Month</th><th>$column</th></tr>";
while ($row = $result->fetch_assoc()){
echo "<tr><td>";
echo $row->$column;
echo "</td><td>";
echo $row->Year;
echo "</td><td>";
echo $row->Month;
echo "</td></tr>";
}
$query->close();
echo "</table";
}
이것은 나를 위해 작동하지 않습니다. 나는 이것에 잠시 붙어있다. 내 코드의 어떤 부분에 문제가 있는지 알고 있습니까? 나는 PHP 5.3.26을 사용하고있다. 어떤 도움이라도 대단히 감사하겠습니다.
'bind_param ('SSS', $의 gYear의, $ gYear2, $ gMonth의가)'당신은 ..', 또한'배열 ('LOC1'=> '페이 에트'를 사용할 수 있습니다,이'ss'을 놓친 (array_key_exists ($ _ POST [ 'location'], $ array)) $ column = $ array [$ _ POST [ 'location']]' –
남자, 나는이 많은 일을 한번도 피곤했다. 집게 손가락이 하루 종일 괴롭힘 –
배열을 만들어야 만합니까? array_key_exists에 익숙하지 않습니다. – user2562125