mysql fetch field_PHP mysql_fetch_field() 函数

例子

$con = mysql_connect("localhost", "hello", "321");

if (!$con)

{

die('Could not connect: ' . mysql_error());

}

$db_selected = mysql_select_db("test_db",$con);

$sql = "SELECT * from Person";

$result = mysql_query($sql,$con);

while ($property = mysql_fetch_field($result))

{

echo "Field name: " . $property->name . "
";

echo "Table name: " . $property->table . "
";

echo "Default value: " . $property->def . "
";

echo "Max length: " . $property->max_length . "
";

echo "Not NULL: " . $property->not_null . "
";

echo "Primary Key: " . $property->primary_key . "
";

echo "Unique Key: " . $property->unique_key . "
";

echo "Mutliple Key: " . $property->multiple_key . "
";

echo "Numeric Field: " . $property->numeric . "
";

echo "BLOB: " . $property->blob . "
";

echo "Field Type: " . $property->type . "
";

echo "Unsigned: " . $property->unsigned . "
";

echo "Zero-filled: " . $property->zerofill . "
";

}

mysql_close($con);

?>

输出:

Field name: LastName

Table name: Person

Default value:

Max length: 8

Not NULL: 0

Primary Key: 0

Unique Key: 0

Mutliple Key: 0

Numeric Field: 0

BLOB: 0

Field Type: string

Unsigned: 0

Zero-filled: 0

Field name: FirstName

Table name: Person

Default value:

Max length: 7

Not NULL: 0

Primary Key: 0

Unique Key: 0

Mutliple Key: 0

Numeric Field: 0

BLOB: 0

Field Type: string

Unsigned: 0

Zero-filled: 0

Field name: City

Table name: Person

Default value:

Max length: 9

Not NULL: 0

Primary Key: 0

Unique Key: 0

Mutliple Key: 0

Numeric Field: 0

BLOB: 0

Field Type: string

Unsigned: 0

Zero-filled: 0

Field name: Age

Table name: Person

Default value:

Max length: 2

Not NULL: 0

Primary Key: 0

Unique Key: 0

Mutliple Key: 0

Numeric Field: 1

BLOB: 0

Field Type: int

Unsigned: 0

Zero-filled: 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、付费专栏及课程。

余额充值