현재 위치: > 최신 기사 목록> pdostatement를 사용하는 방법 :: RowCount insert가 성공했는지 여부를 결정하십시오.

pdostatement를 사용하는 방법 :: RowCount insert가 성공했는지 여부를 결정하십시오.

gitbox 2025-05-28

데이터베이스 작업에 PHP에서 PDO (PHP 데이터 객체)를 사용하는 경우 PDostatement :: rowCount () 메소드를 사용하여 SQL 문의 영향을받는 행의 수를 얻을 수 있습니다. 삽입 작업의 경우 일반적으로 RowCount ()를 사용하여 삽입이 성공했는지 확인하려고합니다.

pdostatement :: RowCount 란 무엇입니까?

pdostatement :: rowCount () 는 마지막으로 실행 된 SQL 문의 영향을받는 행 수를 반환하는 PDO 제공 메소드입니다. 삽입 문의 경우 작업의 영향을받는 행 수를 반환합니다. 일반적으로 인서트는 1 행에 성공적으로 영향을 미칩니다 (단일 삽입 인 경우).

 <?php
// 데이터베이스에 연결하십시오
$pdo = new PDO("mysql:host=localhost;dbname=testdb", "username", "password");

// 데이터 삽입
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);

$name = 'John Doe';
$email = '[email protected]';

$stmt->execute();

// 사용 rowCount() 삽입이 성공했는지 여부를 결정하십시오
if ($stmt->rowCount() > 0) {
    echo "데이터 삽입이 성공적으로 삽입됩니다!";
} else {
    echo "데이터 삽입에 실패했습니다!";
}
?>

Insert가 성공했는지 여부를 결정하는 방법은 무엇입니까?

PDO를 사용하여 삽입 문을 실행 한 후 RowCount ()를 사용하여 데이터가 성공적으로 삽입되었는지 확인할 수 있습니다. 일반적으로 삽입 문이 성공적으로 실행되면 반환 된 행 수는 1이어야하므로 1 행의 데이터에 영향을 미칩니다. 0이 반환되면 SQL 문이 올바르게 실행되지 않았거나 데이터가 삽입되지 않기 때문일 수 있습니다.

그러나 pdostatement :: rowCount ()는 일부 데이터베이스 드라이버, 특히 일부 MySQL 스토리지 엔진을 사용할 때 정확한 행 수를 반환하지 않을 수 있습니다. 예를 들어, InnoDB 저장 엔진을 사용할 때 RowCount ()는 특히 배치 인서트를 수행 할 때 예상 결과를 반환하지 않을 수 있습니다.

배치 삽입을 처리 할 때 성공을 결정하는 방법은 무엇입니까?

배치 삽입 작업의 경우 RowCount () 의 리턴 값은 단일 1이 아닐 수 있습니다. 예를 들어, 여러 레코드를 삽입하면 반환 값은 성공적으로 삽입 된 레코드 수입니다.

 <?php
// 배치 삽입 예제
$pdo = new PDO("mysql:host=localhost;dbname=testdb", "username", "password");
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");

$data = [
    ['name' => 'Alice', 'email' => '[email protected]'],
    ['name' => 'Bob', 'email' => '[email protected]'],
    ['name' => 'Charlie', 'email' => '[email protected]']
];

foreach ($data as $user) {
    $stmt->bindParam(':name', $user['name']);
    $stmt->bindParam(':email', $user['email']);
    $stmt->execute();
}

// 삽입 된 행의 수를 결정하십시오
if ($stmt->rowCount() === count($data)) {
    echo "所有데이터 삽입이 성공적으로 삽입됩니다!";
} else {
    echo "데이터 삽입에 실패했습니다!";
}
?>

이 예에서는 rowCount ()를 사용하여 삽입 된 레코드 수가 예상 수와 일치하는지 여부를 결정합니다. 일관성이 있으면 모든 데이터가 성공적으로 삽입됩니다.

삽입 된 ID를 얻으려면 LastInsertid () 를 사용하십시오

rowCount ()는 삽입이 성공했는지 여부를 알 수 있지만 새 삽입 레코드의 ID를 가져와야하는 경우 pdo :: lastInsertid () 메소드를 사용해야합니다. LastInsertid ()는 마지막 삽입 된 데이터 테이블의 자동화 ID를 반환합니다. 이는 레코드 ID를 삽입하고 반환 해야하는 작업에 매우 유용합니다.

 <?php
// 데이터 삽입并마지막 삽입을 얻으십시오 ID
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);

$name = 'David';
$email = '[email protected]';

$stmt->execute();

// 마지막 삽입을 얻으십시오 ID
$lastInsertId = $pdo->lastInsertId();
echo "마지막 삽입 ID 예:$lastInsertId";
?>

LastInsertid ()는 특히 데이터를 삽입하기 위해 추가 작업 (예 : 다른 테이블과의 연관성)이 필요할 때 새 레코드의 ID를 얻을 수 있습니다.

요약

  1. pdostatement :: rowCount ()는 실행 후 SQL 문의 영향을받는 행의 수를 얻는 데 사용됩니다.

  2. 삽입 문의 경우 rowCount ()는 삽입 된 행의 수를 반환하여 일반적으로 1 행을 반환하여 삽입이 성공했음을 나타냅니다.

  3. 배치를 삽입 할 때 RowCount ()는 삽입 된 실제 레코드 수를 반환합니다.

  4. 삽입 레코드의 ID를 가져와야하는 경우 pdo :: lastinsertid () 메소드를 사용해야합니다.

rowCount ()lastInserTid ()를 올바르게 사용하면 데이터 삽입의 정확성과 무결성을 보장하기 위해 데이터베이스 작업을보다 유연하게 처리 할 수 ​​있습니다.