C++采用mysql自带lib操作mysql
工具: eclipse cdt ,关于 eclipse cdt 的安装将另文讲述
mysql-5.6 的安装目录 E:\rick\SDE\mysql
一 加载dll 库
1 Project–>Properties
2 在 C/C++ Build, 点击 Settings. 在右边选择Tool Settings Tab. 这里我们加入headers和库信息:
-
在 GCC C++ Compiler, 进入 Includes.在Include paths(-l) 加入 mysql include ,这里是 E:\rick\SDE\mysql\include
-
进入 GCC C++ Linker,这里有两个增加的地方:
首先在 Library search path (-L) 加入mysql 库的路径: E:\rick\SDE\mysql\lib
-
跟着在 Libraries(-l) 加入你需要的库名 mysql
二 代码
//============================================================================
// Name : mycpp.cpp
// Author : rickzheng
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include "winsock2.h"
#include <mysql.h>
#include <iostream>
#include <stdio.h>
using namespace std;
int main() {
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;
conn=mysql_init(NULL); // 初始化mysql结构
if (!mysql_real_connect(conn, "localhost", "root", "404", "yogurt", 3306, NULL, 0))
{
printf("/n数据库连接发生错误!");
}
//int res=mysql_query(conn,"select * from users limit 10");
if (mysql_query(conn, "select uid,username,status from users limit 10")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
result = mysql_use_result(conn);
//output table name
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(result)) != NULL)
printf("%s - %s - %s\n", row[0],row[1],row[2]);
// close connection
mysql_free_result(result);
mysql_close(conn);
return 0;
}
注意:实际操作的时候可能 会在Console输不出内容,只需到run->run Configurations 中去开mycpp.exe 重新编绎运行即可
执行中若提示 libmysql.dll 解决方案如下
PATH 中加载 mysql lib 路径 或copy libmysql.dll 到执行的目录下
后记:
1 注意34位、64位需统一