English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_commit() 함수는 트랜잭션을 제출합니다
MySQL 데이터베이스는 자동提交 트랜잭션(그를 열 경우)이 있어서 데이터베이스에서 수행한 변경사항이 자동으로 저장됩니다; 그를 닫으면 변경사항을 명시적으로 저장해야 합니다.
mysqli_commit()현재的事务을 저장하는 함수.
mysqli_commit($con, [$flags, $name]);
순번 | 파라미터 및 설명 |
---|---|
1 | con(필수) 이는 MySQL 서버와의 연결을 나타내는 객체입니다。 |
2 | flags(선택 사항) 다음과 같은 상수 중 하나일 수 있습니다:
|
3 | name(선택 사항) 이는 COMMIT /* name */형식으로 실행됩니다. |
mysqli_commit() 함수는 브루트폼 값을 반환하며, 커밋 작업이 성공하면true,아니면false입니다.
이 함수는 원래 PHP 버전5중에서 도입되었으며 모든 높은 버전에서 사용 가능합니다.
mydb 데이터베이스에서 my_team이라는 테이블을 생성한 예제를 보여줍니다.-
CREATE TABLE my_team( ID INT PRIMARY KEY AUTO_INCREMENT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255) );
다음 예제에서는mysqli_commit()함수의 사용법(상향적 스타일)-
<?php //연결을 설정합니다 $con = mysqli_connect("localhost", "root", "password", "mydb"); //자동提交을 false로 설정합니다 mysqli_autocommit($con, False); //기록을 my_team 테이블에 삽입합니다 mysqli_query($con, "insert into my_team values(1, 'Shikhar', 'Dhawan', 'Delhi', 'India')"); mysqli_query($con, "insert into my_team values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')"); mysqli_query($con, "insert into my_team values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')"); mysqli_query($con, "insert into my_team values(4, 'Virat', 'Kohli', 'Delhi', 'India')"); //테이블 내용 확인 $result = mysqli_query($con, "SELECT * FROM my_team"); print_r($result); mysqli_commit($con); //연결 닫기 mysqli_close($con); ?>
결과 출력
mysqli_result Object ( [current_field] => 0 [field_count] => 5 [lengths] => [num_rows] => 4 [type] => 0 )
如果您验证表my_team的内容,则可以观察保存的数据,如下所示-
mysql> select * from my_team; +----+------------+------------+----------------+-------------+ | ID | First_Name | Last_Name | Place_Of_Birth | Country | +----+------------+------------+----------------+-------------+ | 1 | shikhar | dhawan | delhi | india | | 2 | jonathan | trott | cape town | south africa | | 3 | kumara | sangakkara | matale | srilanka | | 4 | virat | kohli | delhi | india | +----+------------+------------+----------------+-------------+ 4 set에 있는 rows (0.00 초)
객체 지향 스타일의 메서드는 다음과 같은 문법을 사용합니다}}$con-> commit()이 함수는 오브젝트 지향 스타일에서의 예제입니다;
//연결을 설정합니다 $con = new mysqli("localhost", "root", "password", "mydb"); //자동提交을 true로 설정합니다 $con-> autocommit(FALSE); //기록을 my_team 테이블에 삽입합니다 $con-> query("insert into my_team values(1, 'Shikhar', 'Dhawan', 'Delhi', 'India')"); $con-> query("insert into my_team values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')"); $con-> query("insert into my_team values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')"); $con-> query("insert into my_team values(4, 'Virat', 'Kohli', 'Delhi', 'India')"); //테이블 내용 확인 $result = $con-> query("SELECT * FROM my_team"); print_r($result); //결과 저장 $con-> commit(); //연결 닫기 $con -> close(); ?>
결과 출력
mysqli_result Object ( [current_field] => 0 [field_count] => 5 [lengths] => [num_rows] => 4 [type] => 0 )
다른 예제를 보겠습니다. 여기서 테이블을 생성하고 자동提交 옵션을 꺼고 기록을 삽입하여 변경을 저장했습니다. 저장 후 다른 기록을 삽입했습니다:
//연결을 설정합니다 $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "Create table players (First_Name VARCHAR(255), Last_Name VARCHAR(255), Country VARCHAR(255))") //자동提交을 false로 설정합니다 mysqli_autocommit($con, False); //기록을 my_team 테이블에 삽입합니다 mysqli_query($con, "insert into players values('Shikhar', 'Dhawan', 'India');") mysqli_commit($con); mysqli_query($con, "insert into players values('Jonathan', 'Trott', 'SouthAfrica')"); //연결 닫기 mysqli_close($con); ?>
우리가 마지막 추가 쿼리를 저장하지 않았기 때문에, 위 프로그램을 실행한 후에도 연결을 확인하면 players 테이블의 내용을 확인하면 다음과 같이 하나의 레코드만 보입니다:-
mysql> select * from players; +------------+-----------+---------+ | First_Name | Last_Name | Country | +------------+-----------+---------+ | Shikhar | Dhawan | India | +------------+-----------+---------+ 1 row in set (0.00 초)
<?php $connection = mysqli_connect("localhost", "root", "password", "mydb"); if (mysqli_connect_errno($connection)){ echo "MySQL 연결 실패: " . mysqli_connect_error(); } mysqli_autocommit($connection, FALSE); mysqli_query($connection, "create table test(Name VARCHAR(255), Age INT); mysqli_query($connection, "INSERT INTO test VALUES ('Sharukh', 25); mysqli_query($connection, "INSERT INTO test VALUES ('Kalyan', 30)); mysqli_commit($connection); mysqli_close($connection); ?>
위 프로그램을 실행한 후, 테이블을 확인하면test의 내용을 확인하면 추가된 레코드가 다음과 같이 보입니다:-
mysql> select * from test; +---------+------+ | 이름 | 나이 | +---------+------+ | Sharukh | 25 | | Kalyan | 30 | +---------+------+ 2 set에 있는 rows (0.00 초)