2024年PHP开发者大会日本站

mysql_field_seek

(PHP 4, PHP 5)

mysql_field_seek将结果指针设置为指定的字段偏移量

警告

此扩展在PHP 5.5.0中已弃用,并在PHP 7.0.0中移除。应改用MySQLiPDO_MySQL 扩展。另请参阅 MySQL:选择API 指南。此函数的替代方案包括

描述

mysql_field_seek(资源 $result, 整数 $field_offset): 布尔值

查找指定的字段偏移量。如果对mysql_fetch_field() 的下一次调用不包含字段偏移量,则将返回mysql_field_seek() 中指定的字段偏移量。

参数

result

正在评估的结果资源。此结果来自对mysql_query() 的调用。

field_offset

数值字段偏移量。field_offset0 开始。如果field_offset 不存在,还会发出级别为E_WARNING 的错误。

返回值

成功时返回true,失败时返回false

参见

添加笔记

用户贡献笔记 4 个笔记

adrien dot gibrat at gmail dot com
16年前
一点也不笨!!

这意味着“mysql_field_seek”和“mysql_data_seek”移动的是同一个游标……遍历结果资源的行和列。

也意味着当游标到达最后一个字段(也就是列)时,它会跳到新的一行,例如在使用“mysql_fetch_field”循环时。

调用“mysql_fetch_object”、“mysql_fetch_array”、“mysql_fetch_assoc”
和“mysql_fetch_row”似乎会将游标置于行尾。

因此,之后调用没有字段索引的“mysql_fetch_field”将返回false。
chris at igwsolutions dot com
16年前
我花了大量时间试图让示例工作,但示例不起作用。
要执行示例试图执行的操作,您需要使用 mysql_data_seek

假设我们有一个名为 testing 的表,其中包含
id name
1 Hassan
2 Jack
3 Rose
---------------

这是一个可以执行上述示例的示例。

由于我更习惯于面向对象的设置,所以我使用了 mysql_fetch_object

<?php
require("myConnenctionFile.php");

$sql="SELECT * from testing";
$result=mysql_query($sql);

$row = mysql_fetch_object($result);
echo
$row->id . ' ' . $row->name; // 输出为 (1 Hassan)
mysql_data_seek($result,2);
$row = mysql_fetch_object($result);
echo
$row->id . ' ' . $row->name; // 输出为 (3 Rose)
echo "<BR><BR>";
?>
poulpillusion at free dot fr
17年前
一个愚蠢的评论……但这可能会为人们节省一些时间
mysql_field_seek != mysql_data_seek

为了从开头再次获取资源结果的结果,您将使用 mysql_data_seek(id, 0)
Hassan Kazem
16年前
此函数的一个示例
假设我们有表 table1,其中包含
ID Name
1 Hassan
2 Jack
3 Rose
---------------
<?php
mysql_connect
("sql.server.com", "username", "password") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());
$sql="SELECT * from table1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
echo
$row['ID'] . ' ' . $row['Name']; // 输出为 (1 Hassan)
mysql_field_seek($result,2);
echo
$row['ID'] . ' ' . $row['Name']; // 输出为 (3 Rose)
?>
---------------
//您可以看到seek命令将指针向前移动了一步,并跳过了第2行
To Top