c 語言連線mysql
api介紹:
1.mysql *mysql_init(mysql *mysql)
描述:分配或初始化與mysql_real_connect()相適應的mysql物件。
如果mysql是null指標,該函式將分配、初始化、並返回新物件。
否則,將初始化物件,並返回物件的位址。
如果mysql_init()分配了新的物件,當呼叫mysql_close()來關閉連線時。將釋放該物件。
返回值:初始化的mysql*控制代碼;也可以將mysql的例項位址給這個函式,直接讓它初始化例項。
2.mysql *mysql_real_connect(mysql *mysql, const char *host, const char *user, const char *passwd,
const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)
描述:根據引數連線mysql資料庫;
第乙個引數是mysql*型別的指標,這個引數必須是經過mysql_init()初始化過的。
第二個引數是資料庫位址,如果是null或者localhost 則連線本地資料庫;
第三個引數是資料庫使用者名稱;
第四個引數是資料庫密碼;
第五個引數是資料庫名稱(具體要操作的資料庫名稱);
第六個引數是資料庫埠號;
第七個引數描述的是套接字或者命名管道, 如果使用tcp/ip協議鏈結資料庫,則此引數為null
第八個引數通常為0;
返回值:
如果連線成功,返回mysql*連線控制代碼。如果連線失敗,返回null。對於成功的連線,返回值與第1個引數的值相同。
3.int mysql_query(mysql *mysql, const char *query)
描述:執行由「null終結的字串」查詢指向的sql查詢。正常情況下,字串必須包含1條sql語句,而且不應為語句新增終結分號(『;』)或「\g」。
如果允許多語句執行,字串可包含多條由分號隔開的語句。
第乙個引數是mysql例項的位址,
第二個引數是要執行的sql語句,select,update,delete,insert ...
返回值:
如果查詢成功,返回0。如果出現錯誤,返回非0值。
4. mysql_res *mysql_store_result(mysql *mysql)
描述:對於成功檢索了資料的每個查詢(select、show、describe、explain、check table等),必須呼叫mysql_store_result()或mysql_use_result() 。
對於其他查詢,不需要呼叫mysql_store_result()或mysql_use_result(),但是如果在任何情況下均呼叫了mysql_store_result(),它也不會導致任何傷害或效能降低。
返回值:
具有多個結果的mysql_res結果集合。如果出現錯誤,返回null
5.my_ulonglong mysql_num_rows(mysql_res *result)
描述:返回結果集中的行數。
6.unsigned int mysql_num_fields(mysql_res *result)
描述:返回結果集中的列數。
7.mysql_row mysql_fetch_row(mysql_res *result)
描述:遍歷結果集中的行資料,每執行一次便會檢索出查詢出的一行資料
檢索結果集的下一行。在mysql_store_result()之後使用時,如果沒有要檢索的行,mysql_fetch_row()返回null
返回值:
下一行的mysql_row結構。如果沒有更多要檢索的行或出現了錯誤,返回null。
8.my_ulonglong mysql_affected_rows(mysql *mysql)
描述:返回上次update更改的行數,上次delete刪除的行數,或上次insert語句插入的行數。對於update、delete或insert語句,
可在mysql_query()後立刻呼叫。對於select語句,mysql_affected_rows()的工作方式與mysql_num_rows()類似。
演示**:
#include #include #include #include #define select "select * from test where flag =0"
#define insert "insert into test (flag,type,f_index) values('1','test_9','4')"
#define delete "delete from test where f_index=4"
#define update "update test set type='test_33' where f_index=4"
void err(char *p)
int main()
{ mysql mysql;//mysql 例項
mysql_row row;//查詢結果
mysql_init(&mysql);//初始化mysql例項
//鏈結mysql
if(!mysql_real_connect(&mysql,"12.23.0.3","sum","sum","test",3306,null,0)) err("mysql_real_connect");
//執行查詢語句
if(mysql_query(&mysql,select) != 0) err("mysql_query");
//儲存結果集
mysql_res *res=mysql_store_result(&mysql);
//返回結果集中的行數
int r_count=mysql_num_rows(res);
//返回結果集中的列數;
int f_count=mysql_num_fields(res);
while(row=mysql_fetch_row(res))
{int i=0;
for(i;i
表原始資料內容:
執行結果:
程式執行完 表中的資料沒有變化;增加修改的資料最後都刪掉了。
Linux C語言連線MySQL 增刪改查操作
linux下想要測試mysql和memcached的效能,因為是伺服器只能通過終端連線,所以考慮用c語言寫測試 於是研究了把c怎麼連線mysql以及增刪改查的 安裝mysql client或者編譯原始碼安裝mysql後,會有支援c語言寫客戶端的標頭檔案和庫檔案,但是目錄可能不一樣,mysql原始碼安...
Linux C語言連線MySQL 增刪改查操作
linux下想要測試mysql和memcached的效能,因為是伺服器只能通過終端連線,所以考慮用c語言寫測試 於是研究了把c怎麼連線mysql以及增刪改查的 安裝mysql client或者編譯原始碼安裝mysql後,會有支援c語言寫客戶端的標頭檔案和庫檔案,但是目錄可能不一樣,mysql原始碼安...
go語言連線mysql,實現增刪改查
獲取驅動包 go get github.com go sql driver mysql 空匯入 func main if err nil 預處理sql stmt,err db.prepare insert into people value default,stmt,err db.prepare u...