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(resource $result, int $field_offset): bool

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

参数

result

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

field_offset

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

返回值

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

参见

添加笔记

用户贡献的笔记 4 条笔记

adrien dot gibrat at gmail dot com
15 年前
一点也不蠢!!

这意味着 “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
---------------

以下是一个将执行上述示例的示例。

由于我在 OOP 环境中更舒服,所以我使用了 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