2014-01-30 4 views
1

나는 준비된 문을 알고 있지만 내 질문은 약간 다릅니다.쿼리에 변수 삽입

의 우리가 변수 $table외부 소스에서 온하지 않는 다음과 같은 상황, 즉 단순히 스크립트에 하드 코드 된 문자열 변수가 척 보자.

if($i == 1) 
    $table = "students"; 
else if($i == 2) 
    $table = "lecturers"; 

$sql = "select * from ".$table." where attending = 1"; 
$db->exec($sql); 
//etc 

내 질문 : 그것은 위의 예처럼 쿼리에 $table 변수를 포함하는 것이 안전하다? 필자는 사용자 입력 데이터에 대해 준비된 문만을 사용해야한다고 생각합니다. 맞습니까? 그렇지 않다면, 나를 바로 잡으십시오.

+1

A)를 그것은 문제가되지 않습니다, B는) 어쨌든 – ElendilTheTall

+0

당신은 준비된 문 쿼리를 형성하기 위해 함께 문자열을 넣어 원하는 시간을 사용할 수있는 준비된 문을 사용합니다. 예를 들어, 데이터 입력이없는 데이터를 동적으로 피벗하는 데 필요합니다. –

+0

@ElendilTheTall 나는 똑같은 말을하는 방법을 생각하려고했다. 이론 상으로는 당신은 안전하다. 위험을 감수하지 마십시오! – Liath

답변