English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_stmt_reset() 함수는预处理语句을 초기화합니다
mysqli_stmt_reset()함수는 이미 열린 준비된 문장 객체(준비된 문장)를 파라미터로 받아서 그것을 초기화합니다. 즉, 오류를 초기화하고, 미缓存的 결과 집합과 전송된 데이터를 초기화합니다. 쿼리, 바인딩 및 저장된 결과 집합은 변경되지 않습니다.
mysqli_stmt_reset($stmt);
순번 | 파라미터 및 설명 |
---|---|
1 | con(필수) 이는 준비된 문장 객체를 나타냅니다. |
PHP mysqli_stmt_reset() 함수는 성공 시에 true, 실패 시에 false 값을 반환합니다.true로 실패할 때는false.
이 함수는 원래 PHP 버전5에서 도입되었으며 모든 더 높은 버전에서 사용할 수 있습니다.
다음 예제에서는mysqli_stmt_reset()함수의 사용법(처리 과정 방식)-
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); 255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))"); print("테이블 생성.....\n"); mysqli_query($con, "INSERT INTO myplayers values(1', 'Sikhar', 'Dhawan', 'Delhi', 'India')'); mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica'); print("데이터 삽입.....\n"); //테이블 내용 검색 $stmt = mysqli_prepare($con, "SELECT); * FROM myplayers); //문장을 실행 mysqli_stmt_execute($stmt); $res = mysqli_stmt_reset($stmt); if($res){ print("재설정 성공"); } //결과 값이 변수에 바인딩됩니다 $res = mysqli_stmt_bind_result($stmt, $id, $fname, $lname, $pob, $country); while (mysqli_stmt_fetch($stmt)) { print("Id: ").print($id).print("\n"); print("fname: ").print($fname).print("\n"); print("lname: ").print($lname).print("\n"); print("pob: ").print($pob).print("\n"); print("country: ").print($country).print("\n"); print("\n"); } //문장을 종료 mysqli_stmt_close($stmt); //연결을 닫기 mysqli_close($con); ?>
출력 결과
데이터 삽입..... 재설정 성공
우리가 중간에 문장을 재설정했기 때문에 reset 함수 없이 결과 내용을 출력하지 않습니다. 이 프로그램은 다음과 같은 출력을 생성합니다:-
데이터 삽입..... Reset Successful E:\PHPExamples>php procedure_oriented.php 테이블 생성..... 데이터 삽입..... Id: 1 fname: Sikhar lname: Dhawan pob: Delhi country: India Id: 2 fname: Jonathan lname: Trott pob: CapeTown country: SouthAfrica
오브젝트-oriented 스타일에서 이 함수의 문법은 다음과 같습니다:$stmt-> close();.아래는 오브젝트-oriented 스타일에서 이 함수의 예제입니다;
<?php //연결 설정 $con = new mysqli("localhost", "root", "password", "mydb"); //테이블 생성 $con -> query("CREATE TABLE players(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))"); print("테이블 생성.....\n"); //예비 준비 문장을 사용하여 값을 테이블에 삽입 $stmt = $con -> prepare( "INSERT INTO players values(?, ?, ?, ?, ?)"); $res = $stmt->reset(); if($res){ print("Reset Successful"); } //매개 변수 마커에 값 바인딩 $stmt -> bind_param("issss", $id, $fname, $lname, $pob, $country); $id = 1; $fname = 'Shikhar'; $lname = 'Dhawan'; $pob = 'Delhi'; $country = 'India'; //문장을 실행 $stmt->execute(); //문장을 종료 $stmt->close(); //연결을 닫기 $con->close(); ?>
출력 결과
테이블 생성..... Reset Successful
그리고 플레이어 테이블의 내용은 비어 있을 것입니다-
mysql> drop table players; Query OK, 0 rows affected (0.26 sec)
위 프로그램을 실행하려면 reset() 함수를 제거하고 이를 수행하면 players 테이블의 내용은 다음과 같이 됩니다:
mysql> select * from players; +------+------------+-----------+----------------+---------+ | ID | First_Name | Last_Name | Place_Of_Birth | Country | +------+------------+-----------+----------------+---------+ | 1 | Shikhar | Dhawan | Delhi | India | +------+------------+-----------+----------------+---------+ 1 row in set (0.00 sec)