当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。