PDO를 사용하여 SELECT 쿼리를 실행하는 방법에는 여러 가지가 있습니다. 차이점은 주로 매개변수, 매개변수 유형 및 결과 유형이 있다는 것입니다. 가장 적합한 것을 선택할 수 있도록 각 사례에 대한 예를 보여 드리겠습니다.
매개변수 없는 SELECT 쿼리
쿼리에 사용할 변수가 없으면 기존 query() 메서드 를 사용할 수 있습니다.
// 选择所有用户 $stmt = $pdo->query("SELECT * FROM users");
이렇게 하면 실제 행을 가져오는 데 사용할 수 있는 $stmt 개체가 제공됩니다.
행 가져오기
쿼리가 하나의 행만 반환하는 경우 $stmt 변수의 fetch() 메서드를 호출할 수 있습니다.
//获取最后一个注册用户 $stmt = $pdo->query("SELECT * FROM users ORDER BY id DESC LIMIT 1"); $user = $stmt->fetch();
PHP에서는 반환된 개체의 메서드를 호출할 수 있습니다. 예:
$user = $pdo->query("SELECT * FROM users ORDER BY id DESC LIMIT 1")->fetch();
여러 행 쿼리
쿼리에서 반환된 여러 행을 가져오는 방법에는 두 가지가 있습니다. 가장 전통적인 방법은 while 루프에서 fetch() 메서드를 사용하는 것입니다.
$stmt = $pdo->query("SELECT * FROM users"); while ($row = $stmt->fetch()) { echo $row['name']."<br />\n"; }
행을 하나씩 처리해야 하는 경우 이 방법을 권장할 수 있습니다. 예를 들어, 이러한 처리가 취해야 할 유일한 조치이거나 사용하기 전에 데이터를 어떤 방식으로 사전 처리해야 하는 경우입니다.
그러나 웹 페이지에 표시될 여러 행의 데이터를 가져오는 가장 좋은 방법은 fetchAll()이라는 메서드를 호출하는 것입니다. 쿼리에 의해 반환된 모든 행을 PHP 배열에 넣습니다. 이 배열은 나중에 템플릿을 사용하여 데이터를 출력하는 데 사용할 수 있습니다(가져오는 동안 데이터를 직접 에코하는 것보다 훨씬 나은 것으로 간주됩니다).
코드는 다음과 같습니다.
$data = $pdo->query("SELECT * FROM users")->fetchAll(); foreach ($data as $row) { echo $row['name']."<br />\n"; }
매개변수가 있는 SELECT 쿼리
그러나 대부분의 경우 쿼리에는 하나 또는 두 개의 변수를 사용해야 합니다. 이 경우에는 준비된 명령문을 사용해야 합니다(또한 매개변수화된 쿼리라고 함) 먼저 매개변수(또는 자리표시자 마커)를 사용하여 쿼리를 준비한 다음 이를 실행하여 각각의 변수를 보냅니다.
PDO에서는 위치 자리 표시자와 명명된 자리 표시자를 모두 사용할 수 있습니다. 간단한 쿼리의 경우 개인적으로 위치 자리 표시자를 선호하고 덜 장황하다고 생각하지만 이는 전적으로 개인 취향의 문제입니다.
위치 자리 표시자를 사용한 SELECT 쿼리
//通过id选择特定的用户 $stmt = $pdo->prepare("SELECT * FROM users WHERE id=?"); $stmt->execute([$id]); $user = $stmt->fetch();
이름이 지정된 자리 표시자를 사용한 SELECT 쿼리
// 通过id选择特定的用户 $stmt = $pdo->prepare("SELECT * FROM users WHERE id=:id"); $stmt->execute(['id' => $id]); $user = $stmt->fetch();
이 글은 SELECT 쿼리에 PDO를 사용하는 방법을 소개한 글입니다.
위 내용은 SELECT 쿼리에 PDO를 사용하는 방법은 무엇입니까? (코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!