English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_stmt_fetch() 함수는 사전 준비된 문장의 결과를 바인딩된 변수에 추출합니다。
mysqli_prepare() 함수를 사용하여 파라미터 표시기(“?”)가 있는(가 있으면) 준비된 문장을 생성할 수 있습니다. 준비된 문장 이후에, 다음을 사용하여mysqli_stmt_bind_param()함수는 생성된 문장의 파라미터에 값을 바인딩합니다。
같은 방식으로 mysqli_stmt_bind_result() 함수를 사용하여 문장의 결과 집합의 열을 필요한 변수에 바인딩할 수 있습니다。
만약 호출하면mysqli_stmt_fetch();함수는 바인딩된 열 이후에, 결과의 열을 지정된 변수에 추출합니다。
mysqli_stmt_fetch($stmt);
순번 | 파라미터 및 설명 |
---|---|
1 | stmt(필수) 이는 준비된 문장의 객체를 나타냅니다。 |
데이터를 가져오면 PHP mysqli_stmt_fetch() 함수는 반환합니다TRUE;에러가 발생하면 반환FALSE;결과에 더 이상 행이 없으면 반환NULL에서 사용되었습니다.
이 함수는 원래 PHP 버전5에서 도입되었으며 모든 더 높은 버전에서 사용할 수 있습니다.
아래 예제는mysqli_stmt_fetch();함수 사용법(과정 지향 스타일), 결과에서 값을 변수에 바인딩하는 예제:
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, First_Name VARCHAR(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); //결과 값이 변수에 바인딩됨 mysqli_stmt_bind_result($stmt, $id, $fname, $lname, $pob, $country); while (mysqli_stmt_fetch($stmt)) { print("Id: ".$id."\n"); print("fname: ".$fname."\n"); print("lname: ".$lname."\n"); print("pob: ".$pob."\n"); print("country: ".$country."\n"); print("\n"); } //문장을 종료하기 mysqli_stmt_close($stmt); //연결을 닫기 mysqli_close($con); ?>
출력 결과
테이블을 생성하기..... 데이터 입력..... Id: 1 fname: Sikhar lname: Dhawan pob: Delhi country: India Id: 2 fname: Jonathan lname: Trott pob: CapeTown country: SouthAfrica
오브젝트 지향 스타일에서 이 함수의 문법은$stmt-> fetch();。아래는 오브젝트 지향 스타일에서 이 함수의 예제입니다. пред prepared statement으로 변수를 결과 집합에 바인딩합니다:
<?php //연결 설정 $con = new mysqli("localhost", "root", "password", "mydb"); $con -> query("CREATE TABLE Test(Name VARCHAR(255), AGE INT"); $con -> query("insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)"); print("创建表.....\n"); $stmt = $con -> prepare( "SELECT * FROM Test WHERE Name in(?, ?)"); $stmt -> bind_param("ss", $name1, $name2); $name1 = 'Raju'; $name2 = 'Rahman'; print("记录已删除.....\n"); //문장을 실행하기 $stmt->execute(); //将变量绑定到结果集 $stmt->bind_result($name, $age); while ($stmt->fetch()) { print("Name: ".$name."\n"); print("Age: ".$age."\n"); } //문장을 종료하기 $stmt->close(); //연결을 닫기 $con->close(); ?>
출력 결과
테이블을 생성하기..... 记录已删除..... Name: Raju Age: 25 Name: Rahman Age: 30
以下示例使用 mysqli_stmt_bind_result() 和 mysqli_stmt_fetch() 函数获取DESCRIBE查询的结果-
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))"); print("创建表.....\n"); //表的说明 $stmt \u003D mysqli_prepare($con, \"DESC \u00A0myplayers\"); //문장을 실행하기 mysqli_stmt_execute($stmt); //결과 값이 변수에 바인딩됨 mysqli_stmt_bind_result($stmt, \u00A0\u00A0\u00A0\u00A0$field, \u00A0\u00A0\u00A0\u00A0$type, \u00A0\u00A0\u00A0\u00A0$null, \u00A0\u00A0\u00A0\u00A0$key, \u00A0\u00A0\u00A0\u00A0$default, \u00A0\u00A0\u00A0\u00A0$extra); while (mysqli_stmt_fetch($stmt)) { print("Field: \u00A0\u00A0\u00A0\u00A0".$field."\n"); print("Type: \u00A0\u00A0\u00A0\u00A0".$type."\n"); print("Null: \u00A0\u00A0\u00A0\u00A0".$null."\n"); print("Key: \u00A0\u00A0\u00A0\u00A0".$key."\n"); print("Default: ".$default."\n"); print("Extra: ".$extra."\n"); print("\n"); } //문장을 종료하기 mysqli_stmt_close($stmt); //연결을 닫기 mysqli_close($con); ?>
출력 결과
테이블을 생성하기..... Field: ID Type: int(11) Null: YES Key: 기본: Extra: Field: First_Name Type: varchar(255) Null: YES Key: 기본: Extra: Field: Last_Name Type: varchar(255) Null: YES Key: 기본: Extra: Field: Place_Of_Birth Type: varchar(255) Null: YES Key: 기본: Extra: Field: Country Type: varchar(255) Null: YES Key: 기본: Extra:
다음 예제는 mysqli_stmt_bind_result()와 mysqli_stmt_fetch() 함수를 사용하여 SHOW TABLES 쿼리 결과를 가져와 현재 데이터베이스에 있는 모든 테이블을 반환합니다:
<?php $con = mysqli_connect("localhost", "root", "password"); //데이터베이스를 선택하기 mysqli_query($con, "CREATE DATABASE NewDatabase"); mysqli_select_db($con, "NewDatabase"); //테이블을 생성하기 mysqli_query($con, "CREATE TABLE test1(Name VARCHAR(255), Age INT)"); mysqli_query($con, "CREATE TABLE test2(Name VARCHAR(255), Age INT)"); mysqli_query($con, "CREATE TABLE test3(Name VARCHAR(255), Age INT)"); print("생성된 테이블.....\n"); //테이블을 표시하기 $stmt = mysqli_prepare($con, "SHOW TABLES"); //문장을 실행하기 mysqli_stmt_execute($stmt); //결과 값이 변수에 바인딩됨 mysqli_stmt_bind_result($stmt, $table_name); print("현재 데이터베이스에 있는 모든 테이블: \n"); while (mysqli_stmt_fetch($stmt)) { print($table_name."\n"); } //문장을 종료하기 mysqli_stmt_close($stmt); //연결을 닫기 mysqli_close($con); ?>
출력 결과
생성된 테이블..... 현재 데이터베이스에 있는 모든 테이블: test1 test2 test3