
mysqli::execute_query를 사용하여 MySQL 데이터베이스에 쿼리를 실행할 때, query string에 변수를 넣는 방법은 다음과 같습니다.
1. prepared statement 사용: MySQLi의 prepared statement 기능을 사용하여 쿼리와 변수를 분리할 수 있습니다. 예를 들어, 다음과 같이 쿼리와 변수를 분리한 후 prepared statement를 사용하여 쿼리를 실행할 수 있습니다.
#hostingforum.kr
php
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ? AND name = ?");
$stmt->bind_param("si", $id, $name);
$stmt->execute();
2. query string에 변수 직접 삽입: query string에 변수를 직접 삽입할 경우, 변수를 문자열로 감싸는 방법을 사용할 수 있습니다. 예를 들어, 다음과 같이 변수를 문자열로 감쌉니다.
#hostingforum.kr
php
$query = "SELECT * FROM users WHERE id = '$id' AND name = '$name'";
그러나, 이 방법은 보안에 취약하므로 사용을 권장하지 않습니다.
3. query string에 변수 직접 삽입 (mysqli_real_escape_string 사용): query string에 변수를 직접 삽입할 경우, mysqli_real_escape_string 함수를 사용하여 변수를 안전하게 삽입할 수 있습니다. 예를 들어, 다음과 같이 변수를 안전하게 삽입합니다.
#hostingforum.kr
php
$query = "SELECT * FROM users WHERE id = '" . mysqli_real_escape_string($mysqli, $id) . "' AND name = '" . mysqli_real_escape_string($mysqli, $name) . "'";
그러나, 이 방법도 보안에 취약하므로 사용을 권장하지 않습니다.
보안을 강화하기 위해서는 prepared statement를 사용하는 것을 권장합니다. prepared statement를 사용하면 쿼리와 변수를 분리하여 보안을 강화할 수 있습니다.
2025-07-05 09:28