나는 PDO를 사용하고 있으며 사용자가 검색 결과로 선택할 수있는 옵션이 있습니다. 몇 가지 예는 정렬, 결과 수, 페이지 번호 등입니다. 준비된 문을 사용하여 SQL 주입 공격을 방지하기 위해이 데이터의 유효성을 검사했지만 변수가 쿼리에 전달되지 않습니다.PDO로 MySQL 쿼리 옵션을 위해 prepared statement 사용하기
내가 뭘 잘못하고 있니? 결과의 정렬 및 수는 SELECT 메뉴이며 페이지 번호는 숫자를 입력 할 수있는 텍스트 입력 양식입니다.
$query = "SELECT SQL_CALC_FOUND_ROWS * FROM people ORDER BY id :sortBy LIMIT $start, :total";
$result = $conn->prepare($query);
$result->bindValue(":sortBy", $sortBy, PDO::PARAM_STR);
$result->bindValue(":total", $total, PDO::PARAM_INT);
"변수가 쿼리에 전달되지 않는다"는 것을 어떻게 결정합니까? – deceze
당신은 왜 모든 것을 묶는 것이 아닌가? 즉'$ start'. –
bindValues를 제거하고 sortBy 및 : totalResults 대신 ASC 및 100을 입력하면 작동합니다. – Zoolander