Mysql C API编程实例
这里给大家一个简单的Mysql API编程实例。使用VS2010编写。访问的数据库为安装Mysql后默认创建的名称为“mysql”的数据库,查询其“user”表的数据,步骤如下:
1、创建一个Win32 Console Application(Win32控制台程序)的空工程(创建空工程需要在向导的Application Settings一步中,勾选Empty project),名称就取为mysql。
2、在Solution Explorer窗口的工程名“mysql”上点右键,选择“Properties”,弹出工程的属性页,然后在左侧子窗口中,选择Configuration Properties->VC++ Directories,右侧子窗口中会显示一些设置项列表,然后在Include Directories项中添加Mysql的Include目录,在Library Directories项中添加Mysql的lib目录。
3、新建一个cpp文件,取名mysql.cpp。
4、在mysql.cpp文件中包含mysql头文件并链接mysql动态库。
#include
#include
#pragma comment(lib, “libmysql.lib”)
这里要注意,因为mysql用到了网络连接的接口函数,所以需要在前面包含WinSock2.h文件。
同时本例中使用了输出流cout,所以还要包含输入输出流头文件:
#include
using namespace std;
5、创建main函数,并修改函数体如下:
int main()
{
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
// 初始化MYSQL变量
mysql_init(&mysql);
// 连接Mysql服务器,本例使用本机作为服务器。访问的数据库名称为“msyql”,参数中的user为你的登录用户名,***为登录密码,需要根据你的实际用户进行设置
if (!mysql_real_connect(&mysql, “127.0.0.1”, “user”, “123”, “mysql”, 3306, 0, 0))
{
cout << “mysql_real_connect failure!” << endl;
return 0;
}
// 查询mysql数据库中的user表
if (mysql_real_query(&mysql, “select * from user”, (unsigned long)strlen(“select * from user”)))
{
cout << “mysql_real_query failure!” << endl;
return 0;
}
// 存储结果集
res = mysql_store_result(&mysql);
if (NULL == res)
{
cout << “mysql_store_result failure!” << endl;
return 0;
}
// 重复读取行,并输出第一个字段的值,直到row为NULL
while (row = mysql_fetch_row(res))
{
cout << row[0] << endl;
}
// 释放结果集
mysql_free_result(res);
// 关闭Mysql连接
mysql_close(&mysql);
return 0;
}
6、将mysql安装目录中的libmysql.dll动态库文件拷贝到工程的当前目录,运行程序。
如果你跟鸡啄米一样使用的是mysql的64位版本,此时程序会报错,有很多不能解析的符号,这是因为我们的工程是32位的,应该改为64位,方法是,上面的工程属性页的右上角有个Configuration Manager按钮,点击它弹出Configuration Manager对话框,下面的列表中可以看到有我们的工程,Platform列显示为“Win32”:
这里需要点击右侧的箭头下拉,选择New弹出New Project Platform对话框,New platform选择x64创建新Platform:
上述的Platform列选择x64就可以了。再次运行程序,你会发现它果然不报错了。
本文就到这里了,到此大家应该对Mysql C API编程有了基本的了解了,在实际开发中可以不断深入研究。