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();。以下是面向对象风格中此函数的示例,使用预处理语句将变量绑定到结果集:
<?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 = mysqli_prepare($con, "DESC myplayers"); //Выполнить оператор mysqli_stmt_execute($stmt); //Привязать значения в результате к переменным 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"); } //Закончить оператор mysqli_stmt_close($stmt); //Закрыть соединение mysqli_close($con); ?>
Результат вывода
创建表..... Field: ID Type: int(11) Null: Да Ключ: Стандартные значения: Дополнительная информация: Field: First_Name Тип: varchar(255) Null: Да Ключ: Стандартные значения: Дополнительная информация: Field: Last_Name Тип: varchar(255) Null: Да Ключ: Стандартные значения: Дополнительная информация: Field: Place_Of_Birth Тип: varchar(255) Null: Да Ключ: Стандартные значения: Дополнительная информация: Поле: Страна Тип: varchar(255) Null: Да Ключ: Стандартные значения: Дополнительная информация:
В следующем примере используется функция 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