gpt4 book ai didi

mysql - 循环 mysql_real_connect 或者什么

转载 作者:太空宇宙 更新时间:2023-11-04 03:05:15 34 4
gpt4 key购买 nike

考虑以下 C 代码:

int main (int argc, char *argv[]) {
MYSQL *sql_handle;

fprintf(stdout,"initializing handle..\n");
sql_handle = mysql_init(sql_handle);

fprintf(stdout,"connecting to database..\n");
mysql_real_connect(sql_handle,NULL,NULL,
NULL,"test",0,NULL,0);

fprintf(stdout,"connection established\n");
mysql_close(sql_handle);
}

这会产生以下输出

...
initializing handle..
connecting to database..
initializing handle..
connecting to database..
initializing handle..
connecting to database..
initializing handle..
connecting to database..
connection established
Error: Can't create UNIX socket (24)

real_connect 函数似乎有问题。守护进程肯定在运行。很久以前我就习惯了 c 所以这可能是一个愚蠢的问题。

[更新]这是完整的代码

  1 #include <stdio.h>
2 #include <stdlib.h>
3
4 #if defined __WIN32__ || _MSC_VER
5 #include "my_global.h"
6 #include "mysql.h"
7 #else
8 #include <mysql.h>
9 #endif
10
11 /* prototypes */
12 void connect(void);
13
14 /* sql handle */
15 MYSQL *sql_handle;
16
17 int main (int argc, char *argv[]) {
18 fprintf(stdout,"main..\n");
19 connect();
20 return EXIT_SUCCESS;
21
22 }
23 void connect(void){
24 fprintf(stdout,"initializing database handle..\n");
25 sql_handle = mysql_init(NULL);
26
27 fprintf(stdout,"connecting to database..\n");
28 mysql_real_connect(sql_handle,NULL,NULL,NULL,NULL,0,NULL,0);
29
30 fprintf(stdout,"closing connection..\n");
31 mysql_close(sql_handle);
32 }

此代码产生该输出:

...
connecting to database..
initializing database handle..
connecting to database..
initializing database handle..
connecting to database..
closing connection..
[1] 12914 segmentation fault (core dumped) ./db

将连接函数的主体复制到 main 中并删除连接函数可以解决问题。但这不是解决方案。

最佳答案

重命名方法

void connect(void)

void connect_to_database(void)

帮我解决了这个问题

关于mysql - 循环 mysql_real_connect 或者什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6188799/

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