0

这是我用于 mysql 插入的 c++ 代码的片段。我找到了一个如何使用 mysql.h 的示例。程序运行良好,直到我为 mysql 添加以下内容。我是 C++ 新手,并且在其他代码中找到了相同的示例,只是无法指出问题我添加了 mysql/mysql.h 而不仅仅是 mysql.h 以及 -i 和 -l 以按照建议进行编译在网上,仍然没有运气。任何帮助,将不胜感激。

#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);

g++ test.c -o test -lstdc++ -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient

test.c:错误:预期,或;MYSQL 之前

test.c:错误:未在此范围内声明 conn

test.c:错误:未在此范围内声明 conn

4

1 回答 1

2

缺少分号:

string unknown = "Unknown";

调用的mysql_query参数太多;它不是“printf”风格的函数。您可以使用 sprintf 到一个单独的缓冲区,冒sql 注入攻击的风险。您应该使用参数化查询

于 2012-06-29T14:05:55.687 回答