가능합니까? 예 :PDO/MySQL 준비 문을 사용하여 매개 변수로 테이블 이름
SELECT * FROM ' . $database . ' WHERE id = :id
을 아니면 내가 배워야 할 몇 가지 다른 트릭이있다 :하지 않으면
SELECT * FROM :database WHERE id = :id
, 난 그냥 이렇게해야합니까?
가능합니까? 예 :PDO/MySQL 준비 문을 사용하여 매개 변수로 테이블 이름
SELECT * FROM ' . $database . ' WHERE id = :id
을 아니면 내가 배워야 할 몇 가지 다른 트릭이있다 :하지 않으면
SELECT * FROM :database WHERE id = :id
, 난 그냥 이렇게해야합니까?
PDO에서 테이블 및 열 이름을 매개 변수로 바꿀 수 없습니다. 참조 Can PHP PDO Statements accept the table or column name as parameter?
동적으로 빌드 된 테이블 이름을 쿼리에 전달하는 것은 매우 위험합니다. 그러나 응용 프로그램에 너무 많이 필요하면 데이터를 삭제해야합니다. PDO가이 문제를 해결할 수 없기 때문에 직접 mysql_real_escape_string으로 전화해야합니다. 또한 테이블 이름을 backticks로`table_name`으로 묶어야합니다.
'SELECT * FROM `' . mysql_real_escape_string($database) . '` WHERE id = :id
한 참고 : 다음 DB에 이미 설정된 연결을 필요로 mysql_real_escape_string
그래서 같이 쿼리를 준비합니다.
편집 :하지만 생각해 보면 $database
변수를 기존 표와 비교하는 것이 가장 좋습니다.
예, 고정 된 목록에서 선택하고 있지만 좋은 지적입니다. –
오, 그 게시물을 보지 못했습니다. 감사! –