©
This document uses PHP Chinese website manual Release
(PHP 5)
mysqli_result::fetch_row -- mysqli_fetch_row — Get a result row as an enumerated array
面向对象风格
过程化风格
$result
)
Fetches one row of data from the result set and returns it as an enumerated
array, where each column is stored in an array offset starting from 0 (zero).
Each subsequent call to this function will return the next row within the
result set, or NULL
if there are no more rows.
result
仅以过程化样式:由 mysqli_query() , mysqli_store_result() 或 mysqli_use_result() 返回的结果集标识。
mysqli_fetch_row() returns an array of strings that corresponds to the fetched row
or NULL
if there are no more rows in result set.
Note: 此函数将 NULL 字段设置为 PHP
NULL
值。
Example #1 面向对象风格
<?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 Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5" ;
if ( $result = $mysqli -> query ( $query )) {
while ( $row = $result -> fetch_row ()) {
printf ( "%s (%s)\n" , $row [ 0 ], $row [ 1 ]);
}
$result -> close ();
}
$mysqli -> close ();
?>
Example #2 过程化风格
<?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 Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5" ;
if ( $result = mysqli_query ( $link , $query )) {
while ( $row = mysqli_fetch_row ( $result )) {
printf ( "%s (%s)\n" , $row [ 0 ], $row [ 1 ]);
}
mysqli_free_result ( $result );
}
mysqli_close ( $link );
?>
以上例程会输出:
Pueblo (USA) Arvada (USA) Cape Coral (USA) Green Bay (USA) Santa Clara (USA)
[#1] sainthyoga2003 at gmail dot com [2014-03-17 15:35:41]
Note that mysqli_fetch() is deprecated but still is in PHP function list. mysqli_fetch_row() is nowadays mysql procedural style used, but is not listed in PHP functions.
[#2] evangun2001 at yahoo dot fr [2007-09-16 14:24:20]
Remember that fetch() and fetch_row() are two different things, and differ in the way to use them.
- fetch() is used on a statement (like an executed prepared statement) and needs to be used in association with bind_result().
- fetch_row() is used on a result (like the result of query()).
As a consequence, if you want to use to use fetch_row() with an executed prepared statement, first you'll have to get the result out of this statement with mysqli_store_result() or mysqli_use_result().
[#3] Stephen [2007-01-23 02:29:55]
It's worth noting that the MySQLi functions (and, I presume, the MySQL functions) fetch a string regardless of the MySQL data type. E.g. if you fetch a row with an integer column, the corresponding value for that column and row will still be stored as a string in the array returned by mysql_fetch_row.
[#4] maillist at pnpitalia.it [2004-01-06 10:01:54]
from "README.PHP4-TO-PHP5-THIN-CHANGES"
4. Be careful when porting from ext/mysql to ext/mysqli. The following
functions return NULL when no more data is available in the result set
(ext/mysql's functions return FALSE).
- mysqli_fetch_row()
- mysqli_fetch_array()
- mysqli_fetch_assoc()