當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


PHP mysqli_stmt_fetch()用法及代碼示例



定義和用法

您可以創建一個準備好的語句,如果使用 mysqli_prepare() 函數的值,該語句具有參數標記 ("?")。準備好語句後,您需要使用 mysqli_stmt_bind_param() 函數將值綁定到所創建語句的參數。

同樣,您可以使用 mysqli_stmt_bind_result() 函數將語句結果集的列綁定到所需的變量。

在您綁定列之後,如果您調用mysqli_stmt_fetch()函數,它將結果的列提取到指定的變量中。

用法

mysqli_stmt_fetch($stmt);

參數

Sr.No 參數及說明
1

stmt(Mandatory)

這是一個表示準備好的語句的對象。

返回值

PHP mysqli_stmt_fetch() 函數在獲取數據時返回 TRUE,如果出現錯誤則返回 FALSE,如果結果中沒有更多行則返回 NULL。

PHP版本

這個函數最初是在 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("Table Created.....\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("Record Inserted.....\n");

   //Retrieving the contents of the table
   $stmt = mysqli_prepare($con, "SELECT * FROM myplayers");

   //Executing the statement
   mysqli_stmt_execute($stmt);

   //Binding values in result to variables
   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");

   }
   //Closing the statement
   mysqli_stmt_close($stmt);

   //Closing the connection
   mysqli_close($con);
?>

這將產生以下結果 -

Table Created.....
Record Inserted.....
Id:1
fname:Sikhar
lname:Dhawan
pob:Delhi
country:India

Id:2
fname:Jonathan
lname:Trott
pob:CapeTown
country:SouthAfrica

示例

在麵向對象風格中,這個函數的語法是 $stmt->fetch();以下是麵向對象樣式 $minus 中此函數的示例;

<?php
   //Creating a connection
   $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("Table Created.....\n");

   $stmt = $con -> prepare( "SELECT * FROM Test WHERE Name in(?, ?)");
   $stmt -> bind_param("ss", $name1, $name2);
   $name1 = 'Raju';
   $name2 = 'Rahman';
   print("Records Deleted.....\n");

   //Executing the statement
   $stmt->execute();

   //Binding variables to resultset
   $stmt->bind_result($name, $age);
   while ($stmt->fetch()) {
      print("Name:".$name."\n");
      print("Age:".$age."\n");
   }

   //Closing the statement
   $stmt->close();

   //Closing the connection
   $con->close();
?>

這將產生以下結果 -

Table Created.....
Records Deleted.....
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("Table Created.....\n");

   //Description of the table
   $stmt = mysqli_prepare($con, "DESC myplayers");

   //Executing the statement
   mysqli_stmt_execute($stmt);

   //Binding values in result to variables
   mysqli_stmt_bind_result($stmt, $field, $type, $null, $key, $default, $extra);

   while (mysqli_stmt_fetch($stmt)) {
      print("Field:".$field."\n");
      print("Type:".$type."\n");
      print("Null:".$null."\n");
      print("Key:".$key."\n");
      print("Default:".$default."\n");
      print("Extra:".$extra."\n");
      print("\n");
   }

   //Closing the statement
   mysqli_stmt_close($stmt);

   //Closing the connection
   mysqli_close($con);
?>

這將產生以下結果 -

Table Created.....
Field:ID
Type:int(11)
Null:YES
Key:
Default:
Extra:

Field:First_Name
Type:varchar(255)
Null:YES
Key:
Default:
Extra:

Field:Last_Name
Type:varchar(255)
Null:YES
Key:
Default:
Extra:

Field:Place_Of_Birth
Type:varchar(255)
Null:YES
Key:
Default:
Extra:

Field:Country
Type:varchar(255)
Null:YES
Key:
Default:
Extra:

示例

以下示例使用 mysqli_stmt_bind_result() 和 mysqli_stmt_fetch() 函數獲取 SHOW TABLES 查詢的結果 -

<?php
   $con = mysqli_connect("localhost", "root", "password");

   //Selecting the database
   mysqli_query($con, "CREATE DATABASE NewDatabase");
   mysqli_select_db($con, "NewDatabase");

   //Creating tables
   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("Tables Created.....\n");

   //Description of the table
   $stmt = mysqli_prepare($con, "SHOW TABLES");

   //Executing the statement
   mysqli_stmt_execute($stmt);

   //Binding values in result to variables
   mysqli_stmt_bind_result($stmt, $table_name);

   print("List of tables in the current database:\n");
   while (mysqli_stmt_fetch($stmt)) {
      print($table_name."\n");
   }

   //Closing the statement
   mysqli_stmt_close($stmt);

   //Closing the connection
   mysqli_close($con);
?>

這將產生以下結果 -

Tables Created.....
List of tables in the current database:
test1
test2
test3

相關用法


注:本文由純淨天空篩選整理自 PHP mysqli_stmt_fetch() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。