mysqli::use_result

mysqli_use_result

(PHP 5, PHP 7, PHP 8)

mysqli::use_result -- mysqli_use_resultInitiate a result set retrieval

说明

面向对象风格

publicmysqli::use_result(): mysqli_result|false

过程化风格

mysqli_use_result(mysqli$mysql): mysqli_result|false

Used to initiate the retrieval of a result set from the last query executed using the mysqli_real_query() function on the database connection.

Either this or the mysqli_store_result() function must be called before the results of a query can be retrieved, and one or the other must be called to prevent the next query on that database connection from failing.

注意:

The mysqli_use_result() function does not transfer the entire result set from the database and hence cannot be used functions such as mysqli_data_seek() to move to a particular row within the set. To use this functionality, the result set must be stored using mysqli_store_result(). One should not use mysqli_use_result() if a lot of processing on the client side is performed, since this will tie up the server and prevent other threads from updating any tables from which the data is being fetched.

参数

此函数没有参数。

返回值

Returns an unbuffered result object or false if an error occurred.

错误/异常

If mysqli error reporting is enabled (MYSQLI_REPORT_ERROR) and the requested operation fails, a warning is generated. If, in addition, the mode is set to MYSQLI_REPORT_STRICT, a mysqli_sql_exception is thrown instead.

示例

示例 #1 mysqli::use_result() example

面向对象风格

<?php
$mysqli
= new mysqli("localhost", "my_user", "my_password", "world");


if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";


if ($mysqli->multi_query($query)) {
do {

if ($result = $mysqli->use_result()) {
while (
$row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->close();
}

if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while (
$mysqli->next_result());
}


$mysqli->close();
?>

过程化风格

<?php
$link
= mysqli_connect("localhost", "my_user", "my_password", "world");


if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";


if (mysqli_multi_query($link, $query)) {
do {

if ($result = mysqli_use_result($link)) {
while (
$row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
mysqli_free_result($result);
}

if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (
mysqli_next_result($link));
}


mysqli_close($link);
?>

以上示例会输出:

my_user@localhost ----------------- Amersfoort Maastricht Dordrecht Leiden Haarlemmermeer

参见

To Top