PHP 코딩에 대한 의견이 필요합니다. 이것이 SQL injection에 안전하다면 특별히 궁금합니다. 분명히있을 것 같지만 잘못되었을 수도 있습니다.이것은 SQL 주입을 방지하는 안전한 방법입니까?
그리고이 "코딩 스타일"은 수용 가능하거나 정말로 나쁜 습관이라고 생각합니까?
$validinputs = array(1,9,21,'a','b');
if(in_array($_GET['search'], $validinputs))
{
$queryfilter = " = " . $_GET['search'];
}
else
{
$queryfilter = "IS NOT NULL";
}
(...)
$query = "SELECT * FROM `table` WHERE `field` {$queryfilter}";
고마워요!
편집 :이 경우 해당 필드에 대해 유일한 유효한 검색어이기 때문에이 경우 $ validinputs와 비교됩니다. 다른 검색어는 아무 것도 반환하지 않습니다.
가능한 모든 검색어를 허용하고 싶습니까? 그것을 포기하고 준비된 진술을 대신 사용하십시오. –