Linux C語言操作Mysql

2021-06-27 05:55:27 字數 2411 閱讀 9827

rpm -ivh 安裝

-i 安裝,v 顯示進度,h列印####表示進度

/var/lib/mysql  日誌檔案,資料庫檔案存放目錄

/usr/lib/mysql 介面函式動態連線庫存放目錄

/usr/include/sql 介面函式庫檔案頭存放目錄

啟動mysql   service mysql start

停止mysql  service mysql stop

mysql  為mysql結構體;

mysql_library_init()初始化mysql資料庫,提供初始化的資料庫管理,對於與客戶端連線的應用程式,提供了改進的記憶體管理功能。

mysql_init()若引數為空,則初始化乙個新的結構體,分配新的記憶體空間,其他情況把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結構體,主機名,資料庫使用者名稱,密碼,資料庫名,埠號(一般為0),unix_socket(一幫為null),client_flag一般為0;

mysql_error()檢視錯誤原因

mysql_erron()給出錯誤出現的語句,返回值為0則表示呼叫失敗;

mysql_query(mysql *mysql,const char *query) 執行mysql語句的函式,將乙個指標指向乙個連線結構,並且執行包含sql的文體字串,與命令列工具不同,他沒有表示終止的;,執行成功返回0,失敗返回非0;

返回資料的語句:4步

1.發出查詢:mysql_query()

mysql_real_query(mysql *mysql,const char *query,unsigned int length)執行由query指向的sql查詢,其必須有乙個單一的sql語句組成(不加; \g)

對於包含二進位制的資料的查詢,必須使用mysql_real_query()因為二進位制**資料可能包含「\0"字元

2.檢索資料 mysql_store_result(mysql*mysql,mysql_res *result)用來在檢索的集合結果中儲存資料,從伺服器中,檢索所有的資料並將它立即儲存在客戶端,返回乙個結果集合結構體指標,若失敗,返回null

3.處理資料 mysql_fetch_row() 獲得從store_result中得到的結果結構體並從中檢索單行,返回分配的行結構體中的資料,當沒有等多的資料或出錯時返回null

mysql_data_seek()在乙個查詢的結果集合中定位任意行,允許使用者進入結果集,設定將由下乙個獲取操作返回的行

mysql_row_tell() 返回乙個偏移值,表示結果集中的當前位置(非行號)

mysql_row_seek()移動結果集中的當前位置

4.整理資料  mysql_free_result(mysql_res *result)

mysql_field_count(mysql*mysql)得到乙個連線物件並返回在結果集合中字段的數目,(每次輸出一行)需要一次性獲取乙個欄位的資訊,然後把其輸入到乙個包含資料和源資料的結構體中去;

mysql_fetch_row(mysql_res *result)可以重複呼叫這個函式,在結果集合中檢索所有有關列的資訊,當沒有剩下更多的字段時,mysql_fetch_row()返回null

mysql_library_end()關閉資料庫

gcc -g -o mysql mysql.c -i/usr/include/mysql -l/usr/lib -lmysqlclient -lpthread -lm -lrt -ldl

-i/usr/include/mysql  指定mysql.h所在的位置

-l/usr/lib  -lmysqlclient 指定libmysqlclient.a (.so)所在的位置

或者gcc -g -o mysql mysql.c $(mysql_config --cflags) $mysql_config --libs)

連線**:

#include 

#include 

#include 

#include 

static char* server_groups=;

int main()

else 

else 

printf("/n");

} mysql_free_result(res);//操作完畢,查詢結果集 }

mysql_close(&mysql);//關閉資料庫連線

} mysql_library_end();//關閉mysql庫

return exit_success; }

Linux C 檔案操作

系統呼叫比標準庫移植性差 不同os介面不一定一致 系統呼叫會進入核心態,對程式執行的開銷較大.預設檔案描述符 0 標準輸入 1 標準輸出 2 標準錯誤輸出 include include include include include define maxline 80 void if error ...

Linux C 檔案操作

linux 檔案操作 1 linux檔案操作 1.1 系統呼叫 系統呼叫發生核心空間,因此如果在使用者空間的一般應用程式中使用系統呼叫來進行檔案操作,會有使用者空間到核心空間的開銷。但通過系統呼叫來訪問檔案是最直接的方式,系統呼叫函式直接作用於作業系統核心的裝置驅動程式從而實現檔案訪問。檔案描述符f...

Linux C語言操作檔案目錄和檔案

qq群 852283276 b站 主頁 linux c 遍歷目錄及檔案 linux c 遍歷目錄及目錄下檔案 獲取檔案屬性 stat lstat fstat linux c語言遍歷資料夾所有檔案 stat與lstat的區別,當乙個檔案是符號鏈結時,lstat返回的是該符號鏈結本身的資訊,stat返回...