SQL 동적쿼리 (parameter 사용) 방법
SQL에서 동적 쿼리를 작성하여 파라미터를 사용하는 것은 매우 일반적인 요구사항입니다. 동적 쿼리를 사용하면 실행 시점에 쿼리를 동적으로 조립하고 원하는 파라미터 값을 전달할 수 있습니다. 이를 통해 쿼리의 유연성을 높일 수 있습니다.
동적 쿼리를 작성하는 방법은 데이터베이스 시스템에 따라 다를 수 있지만, 대체적으로는 문자열 연결(concatenation)이나 템플릿을 사용하여 동적으로 쿼리를 생성합니다.
여기에 예시를 제공하겠습니다. 아래의 예시에서는 PHP와 MySQL을 사용한 동적 쿼리 작성 방법을 보여줍니다.
<?php
// 사용자로부터 동적으로 받은 파라미터 값
$userInput = "John Doe";
// MySQL 연결
$mysqli = new mysqli("localhost", "username", "password", "database");
// 연결 오류 체크
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
// 동적으로 생성된 쿼리
$query = "SELECT * FROM employees WHERE employee_name = '" . $mysqli->real_escape_string($userInput) . "'";
// 쿼리 실행
$result = $mysqli->query($query);
// 결과 처리
if ($result) {
while ($row = $result->fetch_assoc()) {
// 결과 처리 로직
}
} else {
echo "Error: " . $mysqli->error;
}
// 연결 종료
$mysqli->close();
?>
위의 예시에서는 사용자로부터 입력받은 값을 동적으로 생성된 쿼리에 넣기 전에 `real_escape_string` 함수를 사용하여 SQL 인젝션을 방지합니다. 이 부분은 매우 중요하며, 사용자 입력 값을 쿼리에 직접 삽입하는 것은 보안상 위험할 수 있습니다.
위의 코드는 PHP를 사용한 예시이지만, 다른 언어나 데이터베이스 시스템을 사용하는 경우에도 비슷한 원리가 적용됩니다. 중요한 점은 사용자로부터 입력받은 값을 안전하게 처리하고, SQL 인젝션을 방지하는 방법을 사용하는 것입니다.