日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

函数运行

發布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数运行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


在C連接mysql服務器,需要使用libmysqlclient開發包。在ubuntu系統上可以通過
命令 sudo apt-get install libsqlclient-dev 安裝。
和其它和數據庫訪問類似,具體的過程有
1,連接數據庫
2,訪問數據
3,處理數據
4,斷開連接
下面,接上面的順序來了解mysql數據庫編程所要用到的具體函數
一,連接數據庫
1,初始化一個連接句柄
MYSQL *mysql_init(MYSQL *);
//參數如果為NULL,則分配一個新的連接句柄
2,int mysql_option(MYSQL *connection, enum option_to_set, const char *
argument);
//這個函數用來設置連接特性的,也可以不設,一切會默認。而且,每次只能設
置一個選項,想設置多個選項,則需要多次調用。 以下是三個主要的選項,其它
見手冊。
枚舉選項 實際參數類型 含義
MYSQL_OPT_CONNECT_TIMEOUT?? 常數,無符號的整數類型?? 中止連接前等待的秒

MYSQL_OPT_COMPRESS??? 無,使用NULL?????? 在網絡連接中使用壓縮
MYSQL_INIT_COMMAND??? 常數 ,char* 連接建立以后發送的命令
3,設置及連接數據庫
MYSQL *mysql_real_connect(MYSQL *connection, //連接句柄
const char *server_host, //數據庫所在主機名
const char *sql_username; //訪問數據庫的數據名
const char *sql_password; //密碼
const char *db_name; //數據庫名
unsigned int port_number, //端口號,為0則使用默認(一般選擇)
const char *unix_socket_name, //一般為NULL
unsigned int flags); //見說明
//它們的含意參數 的名稱已經很明白了,而最后一個參數 flags只有兩個參數
可供選擇
CLIENT_ODBC---如果你確知ODBC正用于遠程數據庫,則需要用到它。
CLIENT_FOUND_ROW--???

二,執行SQL語句 mysql_query
int mysql_query(MYSQL *connection, const char *query);
利用connection對query的SQL語句執行成功,則返回 0.
三,獲取數據
1,檢驗受影響的行數量
my_ulonglong mysql_affected_rows(MYSQL *connection);
2,檢索數據
一般,我們用mysql_query發出查詢,利用mysql_store_result或
mysql_use_result執行檢索。再可以用mysql_fetch_row來處理數據,最后用
mysql_free_result進行整理工作。
MYSQL_RES *mysql_store_result(MYSQL *connection);
//如果執行失敗則返回 NULL
實際 返回 的行數 :
my_ulonglong mysql_num_rows(MYSQL_RES *result);

獲得從store result中得到的結構體,并從中檢索單個行,返回給你的行結構體
中的數據。當沒有更多的數據,或者出錯時,將返回NULL值。
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);

在結果集合中跳躍,設置由下面的fetch row選項返回 的行。區距值是一個行的
號碼,這個值大于零而小于結果集合中的行數量。傳遞零值將會在下一次調用到
mysql_fetch_row中時返回 第一行。
void mysql_data_seek(MYSQL_RES *result, my_ulonglong offset);


得到一個區距值(off value),表明 在結果集合中當前的位置。它不是行數,所
以不能用mysql_data_seek來使用它。
MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *result);

在結果集合中移動當前位置,并將當前的位置返回
MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET
offset);

當使用完一個結果集合后,要使MYSQL庫整理分配的對象。
void mysql_free_result(MYSQL_RES *result);


逐行檢索數據
MYSQL_RES * mysql_use_result(MYSQL *connection);
//它嚅然 也是返回 一個結果集合對象,但在返回 時它實際 上并沒有將任何檢
索到的數據返回 到結果集合中,而僅僅是將結果集合初始化來接收數據。

注:: 為了檢索數據,你必須和以前 一樣反復 調用 mysql_fetch_row,直到檢
索完所有的數據,如果你在一次use result調用中沒有得到所有的數據,那么后面
的數據檢索就損壞 了。

?

轉載于:https://blog.51cto.com/ff6893058/413862

總結

以上是生活随笔為你收集整理的函数运行的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。