게으른 개발자의 끄적거림

SQL 동적쿼리 (parameter 사용) 방법

끄적잉 2023. 11. 21. 23:00
728x90

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 인젝션을 방지하는 방법을 사용하는 것입니다.

728x90

'게으른 개발자의 끄적거림' 카테고리의 다른 글

.sh 파일이란?  (1) 2023.11.23
.bat 파일이란?  (1) 2023.11.23
SQL Join문 없는 형태  (0) 2023.11.21
Java Jsp 사용 방법  (0) 2023.11.20
이클립스 톰캣(tomcat) 설치 방법  (0) 2023.11.20