데이터베이스 작업에 PHP를 사용하는 경우 PDO (PHP Data Objects)는 데이터베이스에 연결하고 SQL 쿼리를 수행하는 유연하고 강력한 방법을 제공합니다. 특히 업데이트 및 삭제 명령문의 경우 이러한 진술이 성공적으로 실행되는지 여부를 확인해야합니다. pdostatement :: rowCount ()는 업데이트 또는 삭제가 성공했는지 여부를 결정하는 데 도움이되는 매우 유용한 방법입니다.
pdostatement :: rowCount () 메소드는 마지막 SQL 작업 (예 : 삽입 , 업데이트 또는 삭제 )의 영향을받는 행 수를 반환합니다. 쿼리가 유효한지 여부를 결정하는 데 매우 유용합니다 (즉, 데이터베이스의 데이터를 실제로 변경하는지 여부). 반환 된 행의 수가 0보다 크면 일반적으로 작업이 성공적이라는 것을 의미합니다.
<?php
try {
// 데이터베이스 연결을 만듭니다
$pdo = new PDO('mysql:host=localhost;dbname=testdb', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 구현하다 UPDATE 작동하다
$sql = "UPDATE users SET email = :email WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':email', $newEmail);
$stmt->bindParam(':id', $userId);
// 이 변수에 대한 값을 설정했다고 가정합니다
$newEmail = '[email protected]';
$userId = 1;
$stmt->execute();
// 사용 rowCount 판단합시다 UPDATE 성공적인
if ($stmt->rowCount() > 0) {
echo "성공적으로 업데이트하십시오!";
} else {
echo "데이터가 업데이트되지 않았습니다!";
}
} catch (PDOException $e) {
echo "실수: " . $e->getMessage();
}
?>
이 예에서는 RowCount ()를 사용하여 업데이트 작업이 성공적으로 실행되는지 여부를 결정합니다. 리턴 값이 0보다 큰 경우 적어도 하나의 데이터 행이 업데이트되었음을 의미합니다. 반환 값이 0 인 경우 조건을 충족하는 레코드가 없기 때문에 데이터가 업데이트되지 않았 음을 의미합니다.
<?php
try {
// 데이터베이스 연결을 만듭니다
$pdo = new PDO('mysql:host=localhost;dbname=testdb', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 구현하다 DELETE 작동하다
$sql = "DELETE FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $userId);
// 변수에 대한 값을 설정했다고 가정하십시오
$userId = 1;
$stmt->execute();
// 사용 rowCount 판단합시다 DELETE 성공적인
if ($stmt->rowCount() > 0) {
echo "성공적으로 삭제하십시오!";
} else {
echo "삭제할 데이터가 발견되지 않았습니다!";
}
} catch (PDOException $e) {
echo "실수: " . $e->getMessage();
}
?>
이 삭제 예에서는 rowCount () 메소드를 사용하여 삭제 작업의 영향을 확인합니다. 리턴 값이 0보다 큰 경우 적어도 하나의 행의 데이터 행이 삭제되었음을 의미합니다. 0이 반환되면 데이터가 삭제되지 않았 음을 의미합니다. 이는 기준을 충족하는 레코드가 없기 때문일 수 있습니다.
행의 수는 성공하지 못합니다 . RowCount ()는 영향을받는 행의 수만 반환하며 작업이 성공했는지 여부에 대한 유일한 기준으로 직접 사용할 수 없습니다. 예를 들어, 논리적 오류가있을 수 있지만 줄은 여전히 업데이트됩니다 (일부 값이 NULL로 업데이트 된 경우).주의해서 사용하십시오.
트랜잭션 처리 : 업데이트 또는 삭제를 실행할 때 트랜잭션을 사용하여 데이터 일관성을 보장하는 것이 가장 좋습니다. 트랜잭션 커밋이 실패하면 RowCount ()가 작업이 성공했음을 보여 주더라도 최종 결과는 예상대로 아닐 수 있습니다.
pdostatement :: rowCount ()는 업데이트 또는 삭제 작업이 성공했는지 여부를 결정하는 간결하고 효과적인 방법입니다. 영향을받는 행의 수를 판단하면 작업 결과를 이해하고 필요에 따라 추가 조치를 취할 수 있습니다. 그러나 특히 데이터 로직이 복잡하거나 트랜잭션 관리가 필요한 경우, 행의 수만으로도 성공을 판단하는 것이 항상 완전히 신뢰할 수있는 것은 아닙니다.