C/C++连接MySql数据库

来源:互联网 发布:灯光效果设计软件 编辑:程序博客网 时间:2024/06/10 11:04

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";//建立了一个用于测试的表,表名为studentrt = 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;}

3.运行效果


0 0
原创粉丝点击