gpt4 book ai didi

MySQL C API : Getting `MYSQL_FIELD` array from `MYSQL_STMT` ?

转载 作者:行者123 更新时间:2023-11-30 18:14:27 24 4
gpt4 key购买 nike

我已经准备并执行了MYSQL_STMT,现在我想获取数据。

我可以使用mysql_stmt_field_count获取字段数量。

我需要知道每个字段的 MYSQL_FIELD 信息。

如何获取 MYSQL_FIELD 信息?

MYSQL_STMT中有一个MYSQL_FIELD*类型的field成员,但在手册中它说:

The MYSQL_STMT structure has no members intended for application use.

有几个函数需要MYSQL_RES,例如mysql_fetch_fields,但我没有MYSQL_RES,我有一个 MYSQL_STMT

文档位于:http://dev.mysql.com/doc/refman/5.5/en/c.html

最佳答案

如果您使用准备好的语句,您应该确切地知道每个字段的类型和大小,以便准备 MYSQL_BIND 数组

以下代码片段取自 documentation

MYSQL_BIND    bind[4]; // 4 columns
MYSQL_TIME ts;
unsigned long length[4];
int param_count, column_count, row_count;
short small_data;
int int_data;
char str_data[STRING_SIZE];
my_bool is_null[4];
my_bool error[4];

/* Bind the result buffers for all 4 columns before fetching them */

memset(bind, 0, sizeof(bind));

/* INTEGER COLUMN */
bind[0].buffer_type= MYSQL_TYPE_LONG;
bind[0].buffer= (char *)&int_data;
bind[0].is_null= &is_null[0];
bind[0].length= &length[0];
bind[0].error= &error[0];

/* STRING COLUMN */
bind[1].buffer_type= MYSQL_TYPE_STRING;
bind[1].buffer= (char *)str_data;
bind[1].buffer_length= STRING_SIZE;
bind[1].is_null= &is_null[1];
bind[1].length= &length[1];
bind[1].error= &error[1];

/* SMALLINT COLUMN */
bind[2].buffer_type= MYSQL_TYPE_SHORT;
bind[2].buffer= (char *)&small_data;
bind[2].is_null= &is_null[2];
bind[2].length= &length[2];
bind[2].error= &error[2];

/* TIMESTAMP COLUMN */
bind[3].buffer_type= MYSQL_TYPE_TIMESTAMP;
bind[3].buffer= (char *)&ts;
bind[3].is_null= &is_null[3];
bind[3].length= &length[3];
bind[3].error= &error[3];

关于MySQL C API : Getting `MYSQL_FIELD` array from `MYSQL_STMT` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12048468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com