1.配置Visual Studio
建立一个基本的win32控制台程序,之后- 配置头文件:在【项目】-> 【配置属性】->【C/C++】->【常规】->【附加包含目录】中配置MySql C API的头文件路径,
比如: D:\Program Files\MySQL\Connector C 6.0.2\include; - 配置lib文件:在【项目】-> 【配置属性】->【链接器】->【常规】->【附加库目录】中,添加MySql中提供的lib文件路径
比如:D:\Program Files\MySQL\Connector C 6.0.2\lib\debug
配置lib输入:在【项目】-> 【配置属性】->【链接器】->【输入】->【附加依赖项】中,添加需要的lib文件,
比如:libmysql.lib
- 拷贝dll文件,将libmysql.dll文件配置到你的环境变量PATH中,或者直接拷贝到运行文件的路径下,保证程序在运行是可以找到
注意:如果你的mysql是64位版本,则应该清楚mysql提供的lib文件也是64位的,所以,应该将你的项目更改成x64的项目。可以在项目的配置管理器中进行更改,如果你使用的是Visual studio 2008,如果你在配置管理器,平台选项中,无法将项目更改成64位的,则有可能是因为你没有安装x64的编译器。(Visual Studio 2008默认不安装)
2.编写程序
#include <my_global.h>
#include <mysql.h>
int main(int argc, char ** argv)
{
MYSQL *con;
MYSQL_RES *res;
MYSQL_ROW row;
char dbuser[30] = "root";
char dbpasswd[30] = "root";
char dbip[30] = "127.0.0.1";
char dbname[50] = "test"; //用于测试用的数据库名
char *sql = NULL;
int rt;
int count = 0;
int t;
con = mysql_init((MYSQL*)NULL);
if (con != NULL && mysql_real_connect(con, dbip, dbuser, dbpasswd, dbname, 3306/*TCP IP端口*/, NULL/*Unix Socket 连接类型*/, 0/*运行成ODBC数据库标志*/))
{
if (!mysql_select_db(con, dbname))
{
printf("Select successfully the database!\n");
con->reconnect = 1;
sql = "set names \'GBK\'";
rt = mysql_real_query(con, sql, strlen(sql));
if (rt)
{
printf("Error making query: %s !!!\n", mysql_error(con));
}
else
{
printf("query %s succeed!\n", sql);
}
}
}
else
{
printf("connect unable!\n");
}
printf("-----------------------\n"); //进行select操作
sql = "select * from student"; //建立了一个用于测试的表,表名为student
rt = mysql_real_query(con, sql, strlen(sql)); //如果成功,返回0,否则,返回非0值
if (!rt)
{
res = mysql_store_result(con);
while (row = mysql_fetch_row(res))
{
for (t = 0; t<mysql_num_fields(res); ++t)
{
printf("%s ", row[t]);
}
printf("\n");
}
mysql_free_result(res);
}
else
{
printf("Query Failed!\n");
}
printf("-----------------------\n"); //进行插入操作
sql = "insert student(sid,sname,ssex,sdept) values(\'4\',\'王五\',\'女\',\'材料\')";
rt = mysql_real_query(con, sql, strlen(sql));
if (rt)
{
printf("Insert Failed!\n");
}
printf("-----------------------\n"); //进行更新操作
sql = "update student set sname=\'赵六\' where sid=\'4\'";
rt = mysql_real_query(con, sql, strlen(sql));
if (rt)
{
printf("Update Failed!\n");
}
printf("-----------------------\n"); //进行删除操作
sql = "delete from student where sid=\'5\'";
rt = mysql_real_query(con, sql, strlen(sql));
if (rt)
{
printf("Delete Failed!\n");
}
mysql_close(con); //关闭链接
return 0;
}