Mysql.h c ++参数太多了

SP3*_*8TR 2 c++ mysql linux

现在,当我编译我收到:

/usr/include/mysql/mysql.h:452: error: too many arguments to function int mysql_query(MYSQL*, const char*)
Run Code Online (Sandbox Code Playgroud)

参数是否存在限制mysql.h,如果存在,我该如何解决?

#include    <mysql/mysql.h>


string unknown = "Unknown";

MYSQL *conn;

conn = mysql_init(NULL);
mysql_real_connect(conn, "localhost", "root", "password", "alert", 0, NULL, 0);

mysql_query(conn, "INSERT INTO alert_tbl (alert_srcip, alert_country, alert_destip, alert_desthost, alert_destport, alert_bl) VALUES ('%s','%s','%s','%s','%s','%s')", src_ip,country_code,dest_ip,unknown,dest_prt,blip);

mysql_close(conn);
Run Code Online (Sandbox Code Playgroud)
g++ test.c -o test -lstdc++ -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
Run Code Online (Sandbox Code Playgroud)

Vik*_*pov 5

你必须使用mysql_stmt_prepare,然后通过一个使用绑定的参数值一个mysql_stmt_bind_param

语句准备好后,使用mysql_stmt_execute执行它

或者使用sprintf():

char query[1024 /* or longer */];

sprintf(query,
     "INSERT INTO alert_tbl"
     "(alert_srcip, alert_country, alert_destip, alert_desthost, alert_destport, "
     "alert_bl) VALUES ('%s','%s','%s','%s','%s','%s')",
     src_ip,country_code,dest_ip,unknown,dest_prt,blip);

mysql_query(conn, query);
Run Code Online (Sandbox Code Playgroud)