©
                    本文档使用
                    php中文网手册 发布
                
(PHP 5)
mysqli_stmt::data_seek -- mysqli_stmt_data_seek — Seeks to an arbitrary row in statement result set
面向对象风格
$offset 
   )过程化风格
$stmt 
   ,  int $offset 
   )Seeks to an arbitrary result pointer in the statement result set.
mysqli_stmt_store_result() must be called prior to mysqli_stmt_data_seek() .
stmt 仅以过程化样式:由 mysqli_stmt_init() 返回的 statement 标识。
offset Must be between zero and the total number of rows minus one (0.. mysqli_stmt_num_rows() - 1).
没有返回值。
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 Name" ;
if ( $stmt  =  $mysqli -> prepare ( $query )) {
     
     $stmt -> execute ();
     
     $stmt -> bind_result ( $name ,  $code );
     
     $stmt -> store_result ();
     
     $stmt -> data_seek ( 399 );
     
     $stmt -> fetch ();
     printf  ( "City: %s  Countrycode: %s\n" ,  $name ,  $code );
     
     $stmt -> 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 Name" ;
if ( $stmt  =  mysqli_prepare ( $link ,  $query )) {
     
     mysqli_stmt_execute ( $stmt );
     
     mysqli_stmt_bind_result ( $stmt ,  $name ,  $code );
     
     mysqli_stmt_store_result ( $stmt );
     
     mysqli_stmt_data_seek ( $stmt ,  399 );
     
     mysqli_stmt_fetch ( $stmt );
     printf  ( "City: %s  Countrycode: %s\n" ,  $name ,  $code );
     
     mysqli_stmt_close ( $stmt );
}
 
 mysqli_close ( $link );
 ?>   以上例程会输出:
City: Benin City Countrycode: NGA
[#1] phpnet at stuffonmylaptop dot com [2011-11-23 15:25:40]
Although the documentation says you must provide a number between 0 and count - 1, you can actually supply a negative number, which appears to be cast to positive (such as in abs()).
For example:
<?php
$db = new mysqli('localhost', 'test', 'password', 'schema');
$db->multi_query("
			SELECT * FROM
			(
				SELECT 1 as 'position'
				UNION SELECT 2 as 'position'
				UNION SELECT 3 as 'position'
				UNION SELECT 4 as 'position'
				UNION SELECT 5 as 'position'
			) as rows");
$result = $db->store_result();
for ($i = 0; $i < $result->num_rows; $i++)
{
	$offset = $i;
	$result->data_seek($offset);
	var_dump("Seek offset is: {$offset}", $result->fetch_object());
}
for ($i = 0; $i < $result->num_rows; $i++)
{
	$offset = -$i;
	$result->data_seek($offset);
	var_dump("Seek offset is: {$offset}", $result->fetch_object());
}