gpt4 book ai didi

c++ - 使用 MySQL C API 和 C++ 获取 MySQL 数据库表中的行

转载 作者:行者123 更新时间:2023-11-30 00:55:54 30 4
gpt4 key购买 nike

当我尝试使用 C++ 和 MySQL C API 来获取 mysql 中的表行时,我感到很困惑。

我可以在 PHP 中轻松完成,只是因为 C++ 是一种强类型语言,所以我们还需要处理脏过程..

这就是我在 PHP 中完成的方法

$data = array();$i = 0;$query = mysql_query("SELECT * FROM `my_table`");while($fetch = mysql_fetch_array($query)){  $data[$i] = $fetch['columntobefetched'];  $i++;}

但是如何在 C++ 中使用 MySQL API 做同样的事情呢?

这是到目前为止我的代码....有一个令人困惑的死胡同...x__x

   MYSQL *sqlhnd = mysql_init(NULL);    mysql_real_connect(sqlhnd, "server", "user", "pass", "database", port, NULL, 0);    mysql_query(sqlhnd, "SELECT * FROM `my_table`");    MYSQL_RES *confres = mysql_store_result(sqlhnd);    int totalrows = mysql_num_rows(confres);    int numfields = mysql_num_fields(confres);    MYSQL_FIELD *mfield;    while((row = mysql_fetch_row(confres)))    {        for(i = 0; i < numfields; i++)        {            while(mfield = mysql_fetch_field(confres))            {                mfield->//??? I'm dead            }        }    }

基本上我想从数据库表中的字段获取一个值并将其存储到变量中..

任何形式的帮助将不胜感激:)

谢谢

最佳答案

在 MySQL C API 中,mysql_fetch_row返回一个 MYSQL_ROW 对象,它本质上是当前行中的值的数组。

所以,你的代码应该是这样的:

mysql_query(sqlhnd, "SELECT * FROM `my_table`");
MYSQL_RES *confres = mysql_store_result(sqlhnd);
int totalrows = mysql_num_rows(confres);
int numfields = mysql_num_fields(confres);
MYSQL_FIELD *mfield;

while((row = mysql_fetch_row(confres)))
{
for(i = 0; i < numfields; i++)
{
char *val = row[i];
// do something with val...
}
}

更好的是,不要在程序中执行“SELECT * FROM mytable”。最好为您期望的字段命名,这样您就可以确定返回字段的顺序。

关于c++ - 使用 MySQL C API 和 C++ 获取 MySQL 数据库表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20570202/

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