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(resource $result): int|false

从查询中检索字段数。

参数

result

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

返回值

如果成功,则返回结果集 resource 中的字段数;如果失败,则返回 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()

参见

添加注释

用户贡献的注释 5 条注释

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
22 年前
这里是一种从表格中打印出 <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";
}

如果有错误,请发布评论
-6
tharkey at tharkey dot net
21 年前
您可以在没有请求的情况下使用它,只是为了列出字段

$liste_champs = mysql_list_fields ( $Base, $Table, $connexion);

for ($i=0; $i < mysql_num_fields ($l_champs); $i++) {
echo ( mysql_field_name ($l_champs, $i) );
echo (' / ');
}
-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 中),这将起作用。
-12
apass AT passmoore DOT com
21 年前
添加到最后一条评论:您可以动态地循环遍历任意数量的列和行,如下所示

$query="您的 SQL";
$result=mysql_query($query) or die("Query ($query) sucks!");
$fields=mysql_num_fields($result);

echo "<table>\n<tr>";
for ($i=0; $i < mysql_num_fields($result); $i++) // 表头
{ print "<th>".mysql_field_name($result, $i)."</th>"; }
echo "</tr>\n";
while ($row = mysql_fetch_row($result)) { // 表体
echo "<tr>";
for ($f=0; $f < $fields; $f++) {
echo "<td>$row[$f]</td>"; }
echo "</tr>\n";}
echo "</table><p>";

已测试。
To Top