mysql fetch fields_php使用mysql_fetch_field获取数据库表的字段信息

先向大家介绍一下mysql_fetch_field函数的基本知识

mysql_fetch_field介绍

mysql_fetch_field — 从结果集中取得列信息并作为对象返回

语法:

object mysql_fetch_field ( resource $result [, int $field_offset ] )

返回一个包含字段信息的对象。

mysql_fetch_field() 可以用来从某个查询结果中取得字段的信息。如果没有指定字段偏移量,则下一个尚未被 mysql_fetch_field() 取得的字段被提取。

对象的属性为:

name - 列名

table - 该列所在的表名

max_length - 该列最大长度

not_null - 1,如果该列不能为 NULL

primary_key - 1,如果该列是 primary key

unique_key - 1,如果该列是 unique key

multiple_key - 1,如果该列是 non-unique key

numeric - 1,如果该列是 numeric

blob - 1,如果该列是 BLOB

type - 该列的类型

unsigned - 1,如果该列是无符号数

zerofill - 1,如果该列是 zero-filled

mysql_fetch_field获取表字段信息

本示例中需要使用的表信息,表字段信息如下图所示:

ce6bf8f23ee7b5e75749bda7a89a48b3.png

下面我们使用mysql_fetch_field函数获取表字段信息,代码如下:

mysql_connect("localhost","root","");

mysql_select_db("test");

$query = "SELECT * FROM student LIMIT 1";

$result = mysql_query($query);

$fields = mysql_num_fields($result);

/* http://www.manongjc.com/article/1224.html */

for($count=0;$count

{

$field = mysql_fetch_field($result,$count);

echo "

$field->name $field->type ($field->max_length)

";

}

?>

输出结果:

student_id int (1)

student_name string (5)

class_id int (1)

total_score int (3)

上面分别获取到每个字段的名称和字段类型以及长度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取查询结果集中的所有字段,您可以使用`mysql_fetch_field`函数在循环中迭代获取每个字段信息。以下是一个示例: ```cpp #include <mysql/mysql.h> #include <iostream> int main() { // 初始化MySQL连接 MYSQL mysql; mysql_init(&mysql); // 建立与MySQL服务器的连接 if (!mysql_real_connect(&mysql, "localhost", "username", "password", "database", 0, NULL, 0)) { std::cout << "连接到MySQL服务器失败: " << mysql_error(&mysql) << std::endl; return 1; } // 执行查询 const char* query = "SELECT * FROM table"; if (mysql_real_query(&mysql, query, strlen(query)) != 0) { std::cout << "查询执行失败: " << mysql_error(&mysql) << std::endl; return 1; } // 获取查询结果集 MYSQL_RES* result = mysql_store_result(&mysql); if (result == NULL) { std::cout << "获取查询结果集失败: " << mysql_error(&mysql) << std::endl; return 1; } // 获取字段信息 int num_fields = mysql_num_fields(result); MYSQL_FIELD* fields = mysql_fetch_fields(result); // 遍历并打印字段信息 for (int i = 0; i < num_fields; i++) { std::cout << "字段名称: " << fields[i].name << std::endl; std::cout << "字段类型: " << fields[i].type << std::endl; // 可以根据需要获取其他字段属性 std::cout << std::endl; } // 释放结果集内存 mysql_free_result(result); // 关闭与MySQL服务器的连接 mysql_close(&mysql); return 0; } ``` 在上述示例中,使用`mysql_num_fields`函数获取查询结果集的字段数量,并使用`mysql_fetch_fields`函数获取字段信息数组。 然后,使用循环遍历字段信息数组,并打印每个字段的名称和类型等属性。您还可以根据需要获取其他字段属性,如长度、是否为NULL等。 请注意,上述示例是一个简化版的代码,并没有考虑错误处理和异常情况。在实际应用中,建议添加适当的错误处理和异常处理机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值