採用c++封裝mysql提供的常用庫函式,實現對mysql資料庫的訪問。
版本歷史
1、建立表的示例程式 createtable.cpp
//// 本程式演示建立乙個表,用於存放商品資訊。
//#include "freemysql.h"
int main(int argc,char *argv)
// 設定字符集為'gbk',與mysql資料庫的字符集要相同,否則中文會出現亂碼
conn.character("gbk");
// 為sqlstatement指定資料庫連線池,不需要判斷返回值
stmt.connect(&conn);
// 為sqlstatement指定資料庫連線池,不需要判斷返回值
stmt.connect(&conn);
// 準備建立表的sql,商品表:商品編號id,商品名稱name,**sal
// 入庫時間btime,商品說明memo,商品pic
// prepare方法不需要判斷返回值
stmt.prepare("\
create table goods(id bigint(10),\
name varchar(30),\
sal decimal(8,2),\
btime datetime,\
memo longtext,\
pic longblob,\
primary key (id))");
// 執行sql語句,一定要判斷返回值,0-成功,其它-失敗。
if (stmt.execute() != 0)
printf("create table goods ok.\n");
exit(0);
}2、向表中插入記錄的示例程式 inserttable.cpp
//// 本程式演示向商品表中插入10條記錄。
//#include "freemysql.h"
// 定義用於運算元據的結構,與表中的字段對應
struct st_goods
stgoods;
int main(int argc,char *argv)
// 設定字符集為'gbk',與mysql資料庫的字符集要相同,否則中文會出現亂碼
conn.character("gbk");
// 為sqlstatement指定資料庫連線池,不需要判斷返回值
stmt.connect(&conn);
// 準備插入資料的sql,不需要判斷返回值
stmt.prepare("\
insert into goods(id,name,sal,btime) \
values(?,?,?,str_to_date(?,'%%y-%%m-%%d %%h:%%i:%%s'))");
// 為sql語句繫結輸入變數的位址
stmt.bindin(1,&stgoods.id);
stmt.bindin(2, stgoods.name,30);
stmt.bindin(3,&stgoods.sal);
stmt.bindin(4, stgoods.btime,19);
// 模擬商品資料,向表中插入10條測試資訊
for (int ii=1;ii<=10;ii++)
printf("insert ok(id=%d).\n",ii);
}printf("insert table goods ok.\n");
// 提交資料庫事務
conn.commit();
exit(0);
}3、查詢表中記錄的示例程式 selecttable.cpp
//// 本程式演示從商品表中查詢資料
//#include "freemysql.h"
// 定義用於查詢資料的結構,與表中的字段對應
struct st_goods
stgoods;
int main(int argc,char *argv)
// 設定字符集為'gbk',與mysql資料庫的字符集要相同,否則中文會出現亂碼
conn.character((char*)"gbk");
// 為sqlstatement指定資料庫連線池,不需要判斷返回值
stmt.connect(&conn);
int iminid,imaxid;
// 準備查詢資料的sql,不需要判斷返回值
stmt.prepare("\
select id,name,sal,date_format(btime,'%%y-%%m-%%d %%h:%%i:%%s')\
from goods where id>:1 and id<:2");
// 為sql語句繫結輸入變數的位址
stmt.bindin(1,&iminid);
stmt.bindin(2,&imaxid);
// 為sql語句繫結輸出變數的位址
stmt.bindout(1,&stgoods.id);
stmt.bindout(2, stgoods.name,30);
stmt.bindout(3,&stgoods.sal);
stmt.bindout(4, stgoods.btime,19);
// 手工指定id的範圍為1到8,執行一次查詢
iminid=1;
imaxid=8;
// 執行sql語句,一定要判斷返回值,0-成功,其它-失敗。
if (stmt.execute() != 0)
while (1)
// 請注意,stmt.m_cda.rpc變數非常重要,它儲存了sql被執行後影響的記錄數。
printf("本次查詢了goods表%ld條記錄。\n",stmt.m_cda.rpc);
exit(0);
} 4、更新表中記錄的示例程式 updatetable.cpp
//// 本程式演示更新商品表中資料
//#include "freemysql.h"
int main(int argc,char *argv)
// 設定字符集為'gbk',與mysql資料庫的字符集要相同,否則中文會出現亂碼
conn.character("gbk");
// 為sqlstatement指定資料庫連線池,不需要判斷返回值
stmt.connect(&conn);
int iminid,imaxid;
char strbtime[20];
// 準備更新資料的sql,不需要判斷返回值
stmt.prepare("\
update goods set btime=str_to_date(?,'%%y-%%m-%%d %%h:%%i:%%s') where id>? and id<?");
// 為sql語句繫結輸入變數的位址
stmt.bindin(1, strbtime,19);
stmt.bindin(2,&iminid);
stmt.bindin(3,&imaxid);
// 手工指定id的範圍為1到5,btime為2017-12-20 09:45:30,執行一次更新
iminid=1;
imaxid=5;
memset(strbtime,0,sizeof(strbtime));
strcpy(strbtime,"2017-12-20 09:45:30");
// 執行sql語句,一定要判斷返回值,0-成功,其它-失敗。
if (stmt.execute() != 0)
// 請注意,stmt.m_cda.rpc變數非常重要,它儲存了sql被執行後影響的記錄數。
printf("本次更新了goods表%ld條記錄。\n",stmt.m_cda.rpc);
// 提交事務
conn.commit();
exit(0);
}5、刪除表中記錄的示例程式 deletetable.cpp
//// 本程式演示刪除商品表中資料
//#include "freemysql.h"
int main(int argc,char *argv)
// 設定字符集為'gbk',與mysql資料庫的字符集要相同,否則中文會出現亂碼
conn.character("gbk");
// 為sqlstatement指定資料庫連線池,不需要判斷返回值
stmt.connect(&conn);
int iminid,imaxid;
// 準備刪除資料的sql,不需要判斷返回值
stmt.prepare("delete from goods where id>? and id<?");
// 為sql語句繫結輸入變數的位址
stmt.bindin(1,&iminid);
stmt.bindin(2,&imaxid);
// 手工指定id的範圍為1到5
iminid=1;
imaxid=5;
// 執行sql語句,一定要判斷返回值,0-成功,其它-失敗。
if (stmt.execute() != 0)
// 請注意,stmt.m_cda.rpc變數非常重要,它儲存了sql被執行後影響的記錄數。
printf("本次從goods表中刪除了%ld條記錄。\n",stmt.m_cda.rpc);
// 提交事務
conn.commit();
exit(0);
}
c 操作mysql資料庫
include include stdio.h include winsock.h include mysql.h int main else else sprintf tmp,update s set 商品 s 賣出 d,成交 d,漲跌 d,買進 d,總量 d,漲幅 f,時間 s where s ...
c 操作MySql資料庫
需要mysql.data.dll 資料庫連線 server資料庫位址,user資料庫使用者名稱,password密碼,database資料庫名 string connectstring string.format server user id password database server,use...
C 操作MYSQL資料庫
1.安裝mysql 略2.建立c 控制台程式,新建cpp原始檔,如 sqlconn.cpp 3.在工程專案中屬性 c c 常規 附加包含目錄中新增mysql安裝目錄中的mysql mysql mysql server 5.7 include 4.新增庫目錄 5.新增依賴項 libmysql.lib ...