English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 기본 강의

PHP 고급 강의

PHP & MySQL

PHP 참조 매뉴얼

PHP mysqli_stmt_affected_rows() 함수의 사용법 및 예제

PHP MySQLi 참조 매뉴얼

mysqli_stmt_affected_rows() 함수는 최근 실행된 문장이 변경, 제거 또는 삽입한 행의 총 수를 반환합니다.

정의 및 사용법

mysqli_stmt_affected_rows()함수는 최근 실행된 문장이 영향을 미친 (변경, 제거, 삽입) 행 수를 반환합니다.

INSERT, UPDATE 또는 DELETE 문장 이후에 이 함수를 호출하면 이 함수가 정상적으로 작동합니다. SELECT 쿼리에 영향을 받은 행 수를 알고 싶다면 다음 함수를 사용해야 합니다. mysqli_stmt_num_rows() 함수.

문법

mysqli_stmt_affected_rows($stmt)

파라미터

순번파라미터 및 설명
1

stmt(필수)

이는 SQL 쿼리를 실행하는 문장의 대상 객체를 나타냅니다.

반환 값

PHP mysqli_stmt_affected_rows() 함수는 이전 (INSERT, UPDATE, REPLACE 또는 DELETE) 작업에 영향을 받은 행 수를 나타내는 정수 값을 반환합니다.

문장에 오류가 있으면 이 함수는 반환합니다.-1영향을 받은 행이 없으면 이 함수는 반환합니다.0

PHP 버전

이 함수는 원래 PHP 버전에서 시작되었습니다.5중에서 도입되었으며 모든 더 높은 버전에서 사용할 수 있습니다。

온라인 예제

추정해 보면 MySQL 데이터베이스에 employee라는 테이블이 생성되어 있습니다. 그 내용은 다음과 같습니다:

mysql> select * from employee;
+------------+--------------+------+------+--------+
| FIRST_NAME | LAST_NAME            | AGE    | SEX    | INCOME    |
+------------+--------------+------+------+--------+
| Vinay          | Bhattacharya          |   20 | M        |  21000 |
| Sharukh        | Sheik                 |   25 | M        |  23300 |
| Trupthi        | Mishra                |   24 | F        |  51000 |
| Sheldon        | Cooper                |   25 | M        |   2256 |
| Sarmista        | Sharma                |   28 | F        |  15000 |
+------------+--------------+------+------+--------+
5 rows in set (0.00 sec)

아래 예제는 다음을 보여줍니다:mysqli_stmt_affected_rows()함수 사용법(과정 지향 스타일), 데이터를 업데이트한 후, 영향을 받은 행 수를 반환합니다:

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   $stmt = mysqli_prepare($con, "UPDATE employee set INCOME=INCOME-where INCOME>=?");
   mysqli_stmt_bind_param($stmt, "si", $reduct, $limit);
   $limit = 20000;
   $reduct = 5000;
   //문장 실행
   mysqli_stmt_execute($stmt);
   print("업데이트된 레코드......\n");
   //영향을 받은 행
   $count = mysqli_stmt_affected_rows($stmt);
   //문장 종료
   mysqli_stmt_close($stmt);
   //연결 닫기
   mysqli_close($con);
   print("영향을 받은 행 수 " . $count);
?>

출력 결과

업데이트된 레코드......
영향을 받은 행 3

온라인 예제

객체 지향 스타일에서 이 함수의 문법은 다음과 같습니다:$con-> affected_rows;.아래는 객체 지향 스타일에서 이 함수의 예제입니다. 데이터를 삭제한 후, 영향을 받은 행 수를 반환합니다:

<?php
   //연결 설정
   $con = new mysqli("localhost", "root", "password", "mydb");
   $con -> query("CREATE TABLE Test(Name VARCHAR(255), AGE INT");
   print("테이블 생성.....\n");
   $con -> query("insert into Test values('Raju", 25),('Rahman', 30),('Sarmista', 27);
   print("레코드 추가.....\n");
   $stmt = $con -> prepare("DELETE FROM Test WHERE Name in(?, ?)");
   $stmt -> bind_param("ss", $name1, $name2);
   $name1 = 'Raju';
   $name2 = 'Rahman';
   print("레코드가 제거되었습니다.....\n");
   //문장 실행
   $stmt->execute();
   //Affected rows
   $count = $stmt ->affected_rows;
   print("영향을 받은 행 수 ". $count);
   //문장 종료
   $stmt->close();
   //연결 닫기
   $con->close();
?>

출력 결과

테이블 생성.....
레코드 추가.....
레코드가 제거되었습니다.....
영향을 받은 행 수 2

온라인 예제

쿼리가 어떤 행에 영향을 미치지 않으면, 그 반환 값을 확인하겠습니다-

<?php
   $con = @mysqli_connect("localhost", "root", "password", "mydb");
   mysqli_query($con, "CREATE TABLE Test(Name VARCHAR(255), AGE INT");
   print("테이블 생성.....\n");
   mysqli_query($con, "insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27);
   print("레코드 추가.....\n");
   $stmt = mysqli_prepare($con, "DELETE FROM test WHERE Age<?");
   mysqli_stmt_bind_param($stmt, "i", $num);
   $num = 8;
   //문장 실행
   mysqli_stmt_execute($stmt);
   //영향을 받은 행
   $count = mysqli_stmt_affected_rows($stmt);
   print("영향을 받은 행 수(쿼리가 어떤 작업도 수행하지 않을 때): ". $count);
   //문장 종료
   mysqli_stmt_close($stmt);
   //연결 닫기
   mysqli_close($con);
?>

출력 결과

테이블 생성.....
레코드 추가.....
영향을 받은 행 수(쿼리가 어떤 작업도 수행하지 않을 때): 0

PHP MySQLi 참조 매뉴얼