사용자 지정 데이터베이스 쿼리를 구축하기위한 일반적인 패턴 : PDO를
$sql = 'SELECT * FROM foo ';
$sql .= 'WHERE 1 ';
if (array_key_exists('category', $_GET)) {
$sql .= sprintf('AND category_id = %d ', intval($_GET["category"]));
}
if (array_key_exists('date', $_GET)) {
$sql .= sprintf('AND date = "%s" ', mysql_real_escape_string($_GET["date"]));
}
// and so on...
을 또는 사용 : 데이터베이스 결과 추가 필터링을 할 필요가, 그냥 복사 루프를 사용
$params = array();
$sql = 'SELECT * FROM foo ';
$sql .= 'WHERE 1 ';
if (array_key_exists('category', $_GET)) {
$sql .= 'AND category_id = ? ';
$params[] = $_GET["category"];
}
if (array_key_exists('date', $_GET)) {
$sql .= 'AND date = ? ';
$params[] = $_GET["date"];
}
// and so on...
$stmt = $db->prepare($sql);
$stmt->execute($params);
결과를 생략해야하는 행이있을 때마다 데이터를 대상 배열에 그리고 continue
에 저장합니다.