PHP에서 PDO (PHP Data Objects)는 데이터베이스 액세스 추상화 계층을 제공하는 확장자입니다. 여러 데이터베이스 시스템을 지원하고 데이터베이스 작업을 수행하는 통합 방법을 제공합니다. PDO :: EXEC 및 PDOSTATEMENT :: ROWCOUNT는 데이터베이스 운영을위한 두 가지 일반적인 도구입니다. 사용 방법과 조합으로 사용되는 방법을 이해하는 것이 중요합니다. 이 기사는 pdostatement :: rowCount를 올바르게 사용하여 pdo :: exec Execution 후 영향을받는 행의 수를 얻는 방법을 자세히 설명합니다.
PDO :: Exec는 PDO 클래스의 메소드입니다. 일반적으로 삽입 , 업데이트 , 삭제 등과 같이 결과 세트를 반환 할 필요가없는 SQL 문을 실행하는 데 사용됩니다. 영향을받는 행 수, 즉 작업이 수행 된 후 영향을받는 데이터베이스 레코드 수를 반환합니다. 실행이 실패하면 False가 반환됩니다.
예:
<?php
// 데이터베이스 연결
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
// 구현하다 SQL 성명
$sql = "UPDATE users SET status = 'active' WHERE status = 'inactive'";
$affectedRows = $pdo->exec($sql);
echo "영향을받는 행의 수: " . $affectedRows;
?>
위의 코드에서 $ pdo-> exec ($ sql)는 업데이트 작업을 수행하고 영향을받는 행의 수를 반환합니다.
pdostatement :: RowCount는 마지막으로 실행 된 SQL 문의 영향을받는 행의 수를 얻는 메소드입니다. RowCount 메소드는 선택 쿼리를 실행할 때 또는 업데이트 , 삭제 및 삽입 후에 만 영향을받는 행의 수를 얻을 수 있습니다. MySQL과 같은 일부 데이터베이스의 경우 RowCount는 정확한 행 수를 반환하지 않을 수 있습니다. 특히 삭제 또는 업데이트 문을 실행할 때 삭제되거나 업데이트 된 행 수는 영향을받는 행의 실제 행 수와 다를 수 있습니다.
예:
<?php
// 데이터베이스 연결
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
// 구현하다 SQL 성명
$stmt = $pdo->prepare("UPDATE users SET status = 'active' WHERE status = 'inactive'");
$stmt->execute();
// 获取영향을받는 행의 수
$affectedRows = $stmt->rowCount();
echo "영향을받는 행의 수: " . $affectedRows;
?>
위의 코드에서 먼저 준비 메소드를 통해 SQL 문을 준비하고 실행을 통해 실행하십시오. 그 후, 영향을받는 행 카운트는 RowCount 방법을 통해 얻습니다.
실제 개발에서 pdo :: exec 및 pdostatement :: RowCount는 종종 조합으로 사용해야합니다. PDO :: Exec 자체가 영향을받는 행의 수를 반환하지만 더 많은 쿼리를 수행하거나 데이터베이스를보다 유연하게 작동하려면 pdostatement :: RowCount가 더 적합 할 수 있습니다.
예를 들어, pdo :: exec를 사용하여 결과 세트를 반환 할 필요가없는 일부 SQL 문을 실행 한 다음 pdostatement :: rowCount를 사용하여 명령문이 실행 된 후 영향을받는 행의 수를 얻을 수 있습니다.
예:
<?php
// 데이터베이스 연결
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
// 구현하다 SQL 성명
$sql = "UPDATE users SET status = 'active' WHERE status = 'inactive'";
$pdo->exec($sql);
// 사용 rowCount 获取영향을받는 행의 수
$stmt = $pdo->prepare("SELECT * FROM users WHERE status = 'active'");
$stmt->execute();
$affectedRows = $stmt->rowCount();
echo "영향을받는 행의 수: " . $affectedRows;
?>
위의 코드에서는 먼저 EXEC를 통해 업데이트 작업을 실행 한 다음 준비 및 실행을 통해 선택 쿼리를 실행하여 영향을받는 행의 수를 얻습니다.
이 기사의 도입을 통해 pdo :: exec 및 pdostatement :: RowCount 가 데이터베이스를 더 잘 작동시키는 데 도움이되는 두 가지 매우 유용한 두 가지 방법임을 알 수 있습니다. pdo :: exec 메소드는 SQL 문을 실행할 때 영향을받는 행 수를 반환하는 반면, pdostatement :: rowCount 메소드는 일반적으로 실행 된 마지막 쿼리의 영향을받는 행의 수를 반환하는 데 사용됩니다. 개발 과정 에서이 두 가지 방법을 합리적으로 사용하면 데이터베이스와보다 효율적으로 상호 작용할 수 있습니다.
참조