2024年PHP开发者大会日本站

mysql_num_fields

(PHP 4, PHP 5)

mysql_num_fields获取结果中的字段数

警告

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

描述

mysql_num_fields(资源 $result): int|false

检索查询中的字段数。

参数

result

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

返回值

成功时返回结果集资源中的字段数,失败时返回false

示例

示例 #1 一个mysql_num_fields()示例

<?php
$result
= mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
echo
'无法运行查询:' . mysql_error();
exit;
}

/* 返回 2,因为 id,email === 两个字段 */
echo mysql_num_fields($result);
?>

备注

注意:

为了向后兼容性,可以使用以下已弃用的别名:mysql_numfields()

参见

添加备注

用户贡献的注释 3条注释

0
php at jezusisheer dot nl
17年前
请注意,如果您想获取表的列数,并且您使用的是“SHOW COLUMNS FROM $table”查询,则必须对结果使用mysql_num_rows()而不是mysql_num_fields()。考虑到这一点,这变得合乎逻辑,因为SHOW COLUMNS查询返回一个具有六列(Field、Type、Null、Key、Default和Extra)的结果,并且为找到的每一列只有一行。如果您计算字段数,您将始终得到6。如果您计算行数,您将获得找到的列数。
-2
matt at iwdt dot net
23年前
这是一个从表中打印<th>标签行的方法
注意:我没有测试过这个

$result = mysql_query("select * from table");

for ($i = 0; $i < mysql_num_fields($result); $i++) {
print "<th>".mysql_field_name($result, $i)."</th>\n";
}

如果有错误,请发表评论
-5
bwark at stanford dot edu
23年前
如果您只需要表的字段数,您可以这样做

<?php
$db_id
= mysql_connet();
$result = mysql_query("DESCRIBE [tableName], $db_id);

$numFields = mysql_num_rows($result);
?>

因为 "
DESCRIBE" 为表中的每个字段返回一行(至少在MySQL中),所以这将有效。
To Top