C++ 操作 MySQL
使用VS2008作为IDE, 前期准备操作:
1. 项目属性 C++ 附加包含目录 路径为 mysql 安装目录的include
如:"C:\Program Files (x86)\MySQL\MySQL Server 5.6\include"
2. 链接器 常规 附加库目录 路径为 mysql 安装目录的lib
"C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib"
3. 链接器 输入 附加依赖项 路径为 mysql 为 libmysql.lib 所在目录,
如 "C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib\libmysql.lib"
注:这里的文件目录路径因为有空格,所以一定要用 " " 包含起来!!!
4. 将 mysql 目录下的 libmysql.dll 文件拷贝到 debug 目录下,这个很重要!!!!
代码:
#include <iostream> #include <winsock2.h> #include <string> #include "mysql.h" #pragma comment(lib, "libmysql.lib"); using namespace std; int main() { MYSQL mysql; mysql_init(&mysql); // 初始化 MYSQL *ConnStatus = mysql_real_connect(&mysql,"localhost","root","","sky",3306,0,0); if (ConnStatus == NULL) { // 连接失败 int i = mysql_errno(&mysql); string strError= mysql_error(&mysql); cout <<"Error info: "<<strError<<endl; return 0; } cout<<"Mysql Connected..."<<endl; string strsql; MYSQL_RES *result=NULL; // 数据结果集 // 插入操作 strsql = "insert into t1 values(2,'lyb')"; if(0 == mysql_query(&mysql,strsql.c_str())) { cout<<"insert ok"<<endl; } else { cout<<"insert error"<<endl; return 0; } //查询 strsql = "select * from t1"; if(0 == mysql_query(&mysql,strsql.c_str())) { cout<<"select ok"<<endl; result = mysql_store_result(&mysql); // 获取结果放到 result中 } else { cout<<"select error"<<endl; return 0; } //返回记录集总数 int rowcount = mysql_num_rows(result); cout<<"row count :"<<rowcount<<endl; //取得表的字段数组 数量 unsigned int feildcount = mysql_num_fields(result); cout<<"feild count: " << feildcount <<endl; cout << endl; //字段指针 遍历字段 MYSQL_FIELD *feild = NULL; for(unsigned int i = 0; i<feildcount;i++) { feild = mysql_fetch_field_direct(result,i); cout<<feild->name<<"\t"; } cout << endl; //行指针 遍历行 MYSQL_ROW row =NULL; while (NULL != (row = mysql_fetch_row(result)) ) { for(int i=0; i<feildcount;i++) { cout<<row[i]<<"\t"; } cout<<endl; } cout<<endl; //释放结果集 关闭数据库 mysql_free_result(result); mysql_close(&mysql); mysql_library_end(); return 0; } //官方文档参考 //http://dev.mysql.com/doc/refman/5.1/zh/apis.html
运行结果
官方文档参考 http://dev.mysql.com/doc/refman/5.1/zh/apis.html
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。