gpt4 book ai didi

mysql与c程序

转载 作者:太空宇宙 更新时间:2023-11-04 04:49:32 26 4
gpt4 key购买 nike

我用c语言用mysql写了一个程序。效果不佳。

我创建了一个连接函数来帮助我连接 mysql

MYSQL *ts_mysql_connect(char *host, char *user, char *pass, char *database)
{

MYSQL *conn = mysql_init(NULL);
fprintf(stderr, "[ts_mysql_connect] conn-> %ld\n", conn);
if (!mysql_real_connect(conn, host, user, pass, database, 0, NULL, 0)){
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}

//set auto commit to false
if (mysql_autocommit(conn, 0))
fprintf(stderr, "%s\n", "SET MYSQL autocommit to off faild!");
fprintf(stderr, "[ts_mysql_connect] conn-> %ld\n", conn);
return conn;

}

然后我使用下面的代码来调用我的函数

    MYSQL *test;
test = ts_mysql_connect(conf->run_conf->mysql_host,
conf->run_conf->mysql_user,
conf->run_conf->mysql_pass,
conf->run_conf->mysql_database);
conf->mysql_start = time(NULL);
if (verbose)
fprintf(stderr, "[ts_mysql_insert] mysql conn init at %ld\n",
&test);
exit(1);

我不知道为什么 ts_mysql_connect 返回不同的连接地址。

运行日志:

[ts_mysql_connect] conn-> 140065527302336
[ts_mysql_connect] conn-> 140065527302336
[ts_mysql_insert] mysql conn init at -1946154816

那么为什么MYSQL *conn in [ts_mysql_insert] 和 [ts_mysql_connect] 有不同的地址

最佳答案

你没有在第二个程序中声明ts_mysql_connect的函数原型(prototype),所以编译器假定该函数返回一个int类型。

如果您使用 -Wall 指令启用所有警告,您将看到如下警告消息:

warning: implicit declaration of function ‘ts_mysql_connect’

关于mysql与c程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17184145/

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