PHP를 사용하여 데이터베이스를 작동 할 때 PDO (PHP 데이터 객체)는 데이터베이스 액세스를위한 강력하고 안전한 추상화 계층입니다. pdostatement :: fetch () 메소드는 실행 된 쿼리 결과에서 단일 레코드를 얻는 일반적인 메소드입니다. 이 기사는 Fetch () 함수를 효율적으로 사용하여 단계 및 샘플 코드를 포함하여 단일 쿼리 결과를 얻는 방법을 자세히 설명하여 빠르게 시작하고 일반적인 함정을 피할 수 있도록 도와줍니다.
pdostatement :: fetch () 는 pdo preprocessing 문이 실행 된 후 결과 세트에서 다음 레코드를 얻는 데 사용되는 메소드입니다. 전달 된 매개 변수 유형에 따라 레코드의 배열 또는 객체를 반환합니다. fetch ()가 호출 될 때마다 결과 세트 커서는 한 레코드가 아래쪽으로 이동합니다.
먼저 PDO를 통해 데이터베이스 연결 인스턴스를 작성해야합니다.
<?php
$dsn = 'mysql:host=m66.net;dbname=testdb;charset=utf8mb4';
$username = 'your_username';
$password = 'your_password';
try {
$pdo = new PDO($dsn, $username, $password);
// 오류 모드를 예외로 설정하십시오
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("데이터베이스 연결에 실패했습니다:" . $e->getMessage());
}
?>
SQL을 준비하고 전처리 문을 사용하여 실행하십시오.
<?php
$sql = "SELECT id, name, email FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute(['id' => 1]);
?>
Fetch ()를 사용하여 단일 데이터를 얻으십시오. 일반적인 반환 유형은 다음과 같습니다.
pdo :: fetch_assoc : 연관 배열을 반환합니다
pdo :: fetch_obj : 반환 객체
예:
<?php
// 연관 배열을 얻으십시오
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row) {
echo "사용자ID: " . $row['id'] . "\n";
echo "사용자名: " . $row['name'] . "\n";
echo "우편: " . $row['email'] . "\n";
} else {
echo "해당 기록이 없습니다。";
}
?>
단일 결과 만 가져 오기 : fetch ()는 하나의 데이터 만 반환하며, 기본 키 쿼리 또는 하나의 결과 만 필요한 시나리오에 적합하여 리소스 낭비를 유발하기 위해 FetchAll () 을 사용하지 않습니다.
파라미터 바인드 : 전처리 문을 사용하고 파라미터를 바인딩하여 SQL 주입을 방지하고 실행 효율을 향상시킬 수 있습니다.
적절한 추출 방법을 선택하십시오 : 일반적으로 pdo :: fetch_assoc을 사용하여 메모리를 저장하고 필드 이름에 대한 액세스를 용이하게하는 것이 좋습니다.
<?php
$dsn = 'mysql:host=m66.net;dbname=testdb;charset=utf8mb4';
$username = 'your_username';
$password = 'your_password';
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT id, name, email FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute(['id' => 1]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user) {
echo "사용자ID: " . $user['id'] . "\n";
echo "사용자名: " . $user['name'] . "\n";
echo "우편: " . $user['email'] . "\n";
} else {
echo "未找到对应사용자。";
}
} catch (PDOException $e) {
echo "실수: " . $e->getMessage();
}
?>
관련 태그:
PDOStatement