青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

興海北路

---男兒仗劍自橫行
<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345

統計

  • 隨筆 - 85
  • 文章 - 0
  • 評論 - 17
  • 引用 - 0

常用鏈接

留言簿(6)

隨筆分類

隨筆檔案

收藏夾

全是知識啊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

linux下c語言學習筆記——操作mysql
linux下c語言學習筆記——操作mysql

By falcon     2006年3月30日晚上完成

版權聲明:可以自由轉載,但是必須保留原作者名和本站地址,謝謝

[由于最近比較忙,沒有時間來得及整理,下面所有代碼的具體編譯方法和原理請參考11樓以后的回復,謝謝]

今天上數據庫的時候剛上到嵌入式sql,感覺非常有意思,上課的時候就想反正做搜索引擎要用到c連接mysql數據庫的,到底是怎么實現?想入非非,呵呵.

下來的時候趕緊找資料,剛才搜索了幾下,終于找到一些:
1,[比較詳細]在 C 里嵌入 SQL:http://www.pgsqldb.org/pgsqldoc-7.4/ecpg.html
2,[在MySQL數據庫中使用C執行SQL語句]:http://www.dvbbs.net/tech/data/2006031818989.asp
3,MySQL客戶工具和API:http://www.yesky.com/imagesnew/software/mysql/manual_Clients.html
4,基于mysql的高性能數據庫應用開發:http://cache.baidu.com/c?word=mysql%3B%5F%3Breal%3B%5F%3Bconnect%2C%B2%CE%CA%FD&url=http%3A//www%2Edaima%2Ecom%2Ecn/Info/76/Info27780/&b=0&a=2&user=baidu


大家一起來開始練習羅
注:下面的所有例子在mandriva linux下測試通過

1,使用c語言操作mysql之前,先在mysql里頭創建一個數據庫,一個表,在表里頭添加數據如下:

創建數據庫,庫名為cusemysql:
mysql>create database cusemysql;
創建表,表名為:
mysql>use cusemysql;
mysql>create table children(childno int not null unique,fname varchar(20),age int);
添加一點數據哦:
mysql>insert into children values(5,"花兒",10);
對拉,為了方便起見,把表的大致樣子給大家看看


childno         fname         age
1                   小星         9
2                   大量           15



2 ,下面進行具體的操作

插入:insert    

好的,我們現編輯一段c代碼,取名為insert.c


Code:

[Ctrl+A Select All]



代碼寫完了,要編譯哦
#gcc -o insert insert.c -L /usr/local/mysql/lib/mysql/*.a -lz
ok,現在我們執行看看
#./insert
Connection Success
Inserted 1 rows

year,果然可以,呵呵
不信到mysql下看看表children中是否多了剛才插入的那一行數據

注:也許你會問上面gcc的命令參數是什么意思阿,其實,我也不太清楚,呵呵
大概是要把mysql下的某個特定庫包含進來,可是我不知道具體是個什么庫,所以用*.a全部包含進來拉
其實只要包含mysqlclient.a就可以,你試試看


更新:update

我們只要把上面的代碼中的

res = mysql_query(&my_connection, "insert into children values(10,'Ann',5)");

換成

res = mysql_query(&my_connection, "update children set age=20 where childno<5 ");

即可
上面語句實現的功能是,把編號小于5的所有孩子的年齡全部改成20歲



檢索:select

看代碼之前,最好是先看藍色字體的部分[介紹了代碼中用到的一些函數的作用]


Code:

[Ctrl+A Select All]


上面語句實現的功能是:檢索出年齡小于20歲的小孩的信息,不過沒有對信息進行任何處理哦
下次我們對數據進行一定的處理

這里介紹上面用到的幾個函數:

可以從SELECT語句(或其他返回數據的語句)中檢索完所有數據,在單一調用中,使用mysql_store_result:

MYSQL_RES *mysql_store_result(MYSQL *connection);

必須在mysql_query檢索數據后才能調用這個函數,以在結果集中存儲該數據。這個函數從服務器中檢索所有數據并立即將它存儲在客戶機中。它返回一個指向以前我們從未遇到過的結構(結果集結構)的指針。如果語句失敗,則返回NULL。

使用等價的PostgreSQL時,應該知道返回NULL意味著已經發生了錯誤,并且這與未檢索到數據的情況不同。即使,返回值不是NULL,也不意味著當前有數據要處理。

如果未返回NULL,則可以調用mysql_num_rows并且檢索實際返回的行數,它當然可能是0。

my_ulonglong mysql_num_rows(MYSQL_RES *result);

它從mysql_store_result取得返回的結果結構,并且在該結果集中返回行數,行數可能為0。如果mysql_store_result成功,則mysql_num_rows也總是成功的。

這 種mysql_store_result和mysql_num_rows的組合是檢索數據的一種簡便并且直接的方法。一旦 mysql_store_result成功返回,則所有查詢數據都已經存儲在客戶機上并且我們知道可以從結果結構中檢索它,而不用擔心會發生數據庫或網絡 錯誤,因為對于程序所有數據都是本地的。還可以立即發現返回的行數,它可以使編碼更簡便。如前所述,它將所有結果立即地發送回客戶機。對于大結果集,它可 能耗費大量的服務器、網絡和客戶機資源。由于這些原因,使用更大的數據集時,最好僅檢索需要的數據。不久,我們將討論如何使用 mysql_use_result函數來完成該操作。

一旦檢索了數據,則可以使用mysql_fetch_row來檢索它,并且使用mysql_data_seek、mysql_row_seek、mysql_row_tell操作結果集。在開始檢索數據階段之前,讓我們先討論一下這些函數。

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);

這個函數采用從存儲結果中獲取的結果結構,并且從中檢索單一行,在行結構中返回分配給您的數據。當沒有更多數據或者發生錯誤時,返回NULL。稍后,我們將回來處理這一行中的數據。

void mysql_data_seek(MYSQL_RES *result, my_ulonglong offset);

這個函數允許您進入結果集,設置將由下一個獲取操作返回的行。offset是行號,它必須在從0到結果集中的行數減 1 的范圍內。傳遞0將導致在下一次調用mysql_fetch_row時返回第一行。

MYSQL_ROW_OFFEST mysql_row_tell(MYSQL_RES *result);

這個函數返回一個偏移值,它表示結果集中的當前位置。它不是行號,不能將它用于mysql_data_seek。但是,可將它用于:

MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET offset);

它移動結果集中的當前位置,并返回以前的位置。

有時,這一對函數對于在結果集中的已知點之間跳轉很有用。請注意,不要將row tell和row seek使用的偏移值與data_seek使用的行號混淆。這些是不可交換的,結果將是您所希望看到的。

void mysql_free_result(MYSQL_RES *result);

完成結果集時, 必須總是調用這個函數,以允許MySQL庫整理分配給它的對象。



檢索并處理[比較全面哦,呵呵]:select    

下面是詳細的代碼:


Code:

[Ctrl+A Select All]



到此一些基本的操作都已經實現拉,呵呵,怎一個爽自了得
大家快點來阿

posted on 2008-03-14 15:50 隨意門 閱讀(844) 評論(2)  編輯 收藏 引用

評論

# re: linux下c語言學習筆記——操作mysql 2008-03-14 15:53 隨意門

編譯方法有點不規范。

正確的應該是這樣:

1.在程序開頭包含頭文件應這樣寫:
#include <mysql.h>

2.編譯應這樣寫:

$ gcc -o mysql mysql.c `mysql_config --cflags --libs`
  回復  更多評論    

# re: linux下c語言學習筆記——操作mysql 2008-07-25 15:14 隨意門

要告訴編譯器兩個路徑:
1.編譯應這樣寫:
#gcc -o insert insert.c -I/usr/local/mysql/include/mysql/ -L/usr/local/mysql/lib/mysql -lmysqlclient
  回復  更多評論    
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品视频福利| 欧美一区二区三区的| 国产日韩综合一区二区性色av| 免费欧美网站| 久久综合色婷婷| 欧美高清视频在线| 欧美成人精品1314www| 在线精品视频免费观看| 国产精品爱久久久久久久| 在线日韩欧美| 欧美成人久久| 久久国产精品第一页| 国产精品a久久久久久| 尤物九九久久国产精品的特点| 亚洲一级黄色| 久久视频这里只有精品| 亚洲欧美精品在线| 欧美婷婷六月丁香综合色| 国产精品国产三级国产普通话蜜臀| 欧美精品成人一区二区在线观看| 中文一区二区在线观看| 亚洲国产日韩欧美| 免费在线一区二区| 久久免费黄色| 亚洲国产精品成人综合色在线婷婷| 欧美有码视频| 欧美伊人精品成人久久综合97| 免费成人网www| 亚洲国产美女精品久久久久∴| 亚洲视频在线视频| 免费一区二区三区| 一本久道久久综合狠狠爱| 免费亚洲一区二区| 久久电影一区| 欧美色视频日本高清在线观看| 日韩亚洲欧美一区二区三区| 欧美日韩国产高清视频| 性高湖久久久久久久久| 欧美激情a∨在线视频播放| 国产日韩亚洲| 噜噜噜噜噜久久久久久91| 欧美伊人久久久久久久久影院| 国产亚洲欧洲一区高清在线观看| 亚洲无线观看| 亚洲自拍偷拍一区| 国产真实久久| 亚洲国产精品精华液2区45| 欧美激情一区在线观看| 亚洲一区二区视频在线观看| 一区二区三区四区五区视频 | 老司机精品视频一区二区三区| 欧美精品v日韩精品v韩国精品v| 免费在线看一区| 国产亚洲精品一区二区| 亚洲国产日本| 亚洲女人天堂av| 欧美国产视频在线| 欧美a一区二区| 欧美一级大片在线观看| 麻豆精品视频在线观看| 午夜日韩av| 欧美巨乳在线| 欧美激情综合| 亚洲国产视频一区| 亚洲男人的天堂在线| 午夜激情综合网| 一区在线播放视频| 欧美在线在线| 久久九九热re6这里有精品| 欧美精品午夜| 日韩视频精品在线| 黄色日韩网站| 欧美一区二区三区四区在线| 香蕉国产精品偷在线观看不卡| 欧美伊人久久久久久午夜久久久久 | 夜夜爽av福利精品导航| 久久中文字幕导航| 欧美jizz19hd性欧美| 一本色道久久综合亚洲二区三区| 国产欧美精品日韩区二区麻豆天美| 美女日韩在线中文字幕| 午夜宅男久久久| 夜夜精品视频一区二区| 亚洲一区视频在线| 国产精品久久久久久亚洲毛片| 亚洲国产欧美精品| 国产精品男女猛烈高潮激情| 日韩午夜免费| 亚洲图片欧美午夜| 欧美精品一区在线播放| 毛片基地黄久久久久久天堂| 国产午夜精品理论片a级大结局| 亚洲人精品午夜在线观看| 小黄鸭精品aⅴ导航网站入口| 久久久水蜜桃av免费网站| 亚洲人成亚洲人成在线观看| 欧美新色视频| 久久黄色网页| 午夜精品福利一区二区三区av | 国产精品乱码妇女bbbb| 久久精品国产清高在天天线| 久久久91精品| 亚洲午夜极品| 久久久一本精品99久久精品66| 日韩视频在线你懂得| 性18欧美另类| 中国女人久久久| 久久精品亚洲一区| 亚洲淫性视频| 免费人成精品欧美精品| 欧美在线啊v一区| 欧美激情四色 | 久久久久久久久伊人| 欧美另类高清视频在线| 久久久久看片| 欧美午夜a级限制福利片| 欧美不卡福利| 国产美女高潮久久白浆| 99re66热这里只有精品3直播| 激情偷拍久久| 欧美一区二区三区视频免费| 国产精品99久久久久久白浆小说| 久久久久久久波多野高潮日日| 亚洲天天影视| 欧美高清视频一区二区三区在线观看 | 欧美wwwwww| 国产精品人人做人人爽人人添| 亚洲国产日韩欧美| 欧美尤物一区| 欧美一级专区| 欧美日韩国产在线一区| 亚洲国产精品久久久| 伊人婷婷欧美激情| 欧美在线观看视频| 久久国产夜色精品鲁鲁99| 国产精品第13页| 亚洲精品视频啊美女在线直播| 在线观看国产精品淫| 久久精品最新地址| 久久亚洲一区二区三区四区| 国产亚洲在线| 久久激情婷婷| 美女视频黄 久久| 亚洲国产欧洲综合997久久| 久久综合色综合88| 亚洲高清免费在线| 日韩一二三区视频| 欧美日韩精品免费观看视频完整| 亚洲人成人一区二区三区| 亚洲美女尤物影院| 欧美母乳在线| 亚洲色图自拍| 午夜久久电影网| 国产美女诱惑一区二区| 羞羞答答国产精品www一本| 久久久久国产精品一区二区| 国产一区二区三区四区hd| 久久手机免费观看| 亚洲成人直播| 国产精品入口福利| 亚洲黄色成人网| 欧美区国产区| 在线亚洲观看| 久久精品国产亚洲一区二区三区 | 欧美一级网站| 黄色成人av在线| 欧美激情黄色片| 亚洲天堂视频在线观看| 久久久久**毛片大全| 亚洲高清免费视频| 欧美性片在线观看| 久久精品欧美日韩| 亚洲美女免费精品视频在线观看| 午夜精品剧场| 亚洲激情偷拍| 国产欧美不卡| 欧美精品福利在线| 欧美一二三视频| 亚洲国产精品第一区二区三区| 欧美一区免费视频| 亚洲美女中文字幕| 国产精品爽黄69| 美女视频一区免费观看| 亚洲永久在线| 亚洲欧洲日本专区| 久久亚洲不卡| 午夜精品久久久99热福利| 一区二区在线不卡| 欧美三级视频在线播放| 久久综合网络一区二区| 亚洲一区免费在线观看| 亚洲经典自拍| 麻豆精品在线播放| 亚洲女性喷水在线观看一区| 99精品国产在热久久婷婷| 黄色日韩精品| 国产三级欧美三级日产三级99| 欧美精品在线观看| 狂野欧美性猛交xxxx巴西| 欧美一级黄色网|