PHP의 PDO에서 명명된 플레이스홀더
편의를 위해 배열에서 변수의 순서가 중요하지 않은 명명된 플레이스홀더를 사용할 수 있습니다. 이제 명명된 플레이스홀더로 어떻게 작업하는지 살펴보겠습니다.
다시 다음과 같은 변수가 있다고 가정해 봅시다:
<?php
$min = 1;
$max = 5;
?>
명명된 플레이스홀더를 사용하여 SQL 쿼리를 만들어 봅시다. 구문은 다음과 같습니다: 콜론(:) 뒤에 플레이스홀더 이름이 옵니다. 쿼리에서 이를 사용해 보겠습니다:
<?php
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>
쿼리를 준비합니다:
<?php
$res = $pdo->prepare($sql);
?>
키가 SQL 쿼리의 플레이스홀더 이름이고 값이 해당 변수인 연관 배열을 매개변수로 전달하여 쿼리를 실행합니다:
<?php
$res->execute([
'min' => $min,
'max' => $max
]);
?>
결과를 확인할 수 있습니다:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
모든 것을 함께 모아서 다음 코드를 얻습니다:
<?php
$min = 1;
$max = 5;
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
$res = $pdo->prepare($sql);
$res->execute([
'min' => $min,
'max' => $max
]);
while ($row = $res->fetch()) {
var_dump($row);
}
?>
주어진 변수:
<?php
$age = 30;
?>
변수에 지정된 값과 나이가 같은 모든 사용자를 찾으세요.
주어진 변수들:
<?php
$age1 = 20;
$age2 = 30;
?>
변수 값으로 지정된 범위 내에 나이가 있는 모든 사용자를 찾으세요.
주어진 변수들:
<?php
$age1 = 20;
$age2 = 30;
$salary1 = 1000;
$salary2 = 2000;
?>
변수 값으로 지정된 범위 내에 나이와 급여가 모두 있는 모든 사용자를 찾으세요.