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

興海北路

---男兒仗劍自橫行
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

統(tǒng)計(jì)

  • 隨筆 - 85
  • 文章 - 0
  • 評(píng)論 - 17
  • 引用 - 0

常用鏈接

留言簿(6)

隨筆分類

隨筆檔案

收藏夾

全是知識(shí)啊

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

linux下c語言學(xué)習(xí)筆記——操作mysql
linux下c語言學(xué)習(xí)筆記——操作mysql

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

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

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

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

下來的時(shí)候趕緊找資料,剛才搜索了幾下,終于找到一些:
1,[比較詳細(xì)]在 C 里嵌入 SQL:http://www.pgsqldb.org/pgsqldoc-7.4/ecpg.html
2,[在MySQL數(shù)據(jù)庫中使用C執(zhí)行SQL語句]:http://www.dvbbs.net/tech/data/2006031818989.asp
3,MySQL客戶工具和API:http://www.yesky.com/imagesnew/software/mysql/manual_Clients.html
4,基于mysql的高性能數(shù)據(jù)庫應(yīng)用開發(fā):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


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

1,使用c語言操作mysql之前,先在mysql里頭創(chuàng)建一個(gè)數(shù)據(jù)庫,一個(gè)表,在表里頭添加數(shù)據(jù)如下:

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


childno         fname         age
1                   小星         9
2                   大量           15



2 ,下面進(jìn)行具體的操作

插入:insert    

好的,我們現(xiàn)編輯一段c代碼,取名為insert.c


Code:

[Ctrl+A Select All]



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

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

注:也許你會(huì)問上面gcc的命令參數(shù)是什么意思阿,其實(shí),我也不太清楚,呵呵
大概是要把mysql下的某個(gè)特定庫包含進(jìn)來,可是我不知道具體是個(gè)什么庫,所以用*.a全部包含進(jìn)來拉
其實(shí)只要包含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 ");

即可
上面語句實(shí)現(xiàn)的功能是,把編號(hào)小于5的所有孩子的年齡全部改成20歲



檢索:select

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


Code:

[Ctrl+A Select All]


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

這里介紹上面用到的幾個(gè)函數(shù):

可以從SELECT語句(或其他返回?cái)?shù)據(jù)的語句)中檢索完所有數(shù)據(jù),在單一調(diào)用中,使用mysql_store_result:

MYSQL_RES *mysql_store_result(MYSQL *connection);

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

使用等價(jià)的PostgreSQL時(shí),應(yīng)該知道返回NULL意味著已經(jīng)發(fā)生了錯(cuò)誤,并且這與未檢索到數(shù)據(jù)的情況不同。即使,返回值不是NULL,也不意味著當(dāng)前有數(shù)據(jù)要處理。

如果未返回NULL,則可以調(diào)用mysql_num_rows并且檢索實(shí)際返回的行數(shù),它當(dāng)然可能是0。

my_ulonglong mysql_num_rows(MYSQL_RES *result);

它從mysql_store_result取得返回的結(jié)果結(jié)構(gòu),并且在該結(jié)果集中返回行數(shù),行數(shù)可能為0。如果mysql_store_result成功,則mysql_num_rows也總是成功的。

這 種mysql_store_result和mysql_num_rows的組合是檢索數(shù)據(jù)的一種簡(jiǎn)便并且直接的方法。一旦 mysql_store_result成功返回,則所有查詢數(shù)據(jù)都已經(jīng)存儲(chǔ)在客戶機(jī)上并且我們知道可以從結(jié)果結(jié)構(gòu)中檢索它,而不用擔(dān)心會(huì)發(fā)生數(shù)據(jù)庫或網(wǎng)絡(luò) 錯(cuò)誤,因?yàn)閷?duì)于程序所有數(shù)據(jù)都是本地的。還可以立即發(fā)現(xiàn)返回的行數(shù),它可以使編碼更簡(jiǎn)便。如前所述,它將所有結(jié)果立即地發(fā)送回客戶機(jī)。對(duì)于大結(jié)果集,它可 能耗費(fèi)大量的服務(wù)器、網(wǎng)絡(luò)和客戶機(jī)資源。由于這些原因,使用更大的數(shù)據(jù)集時(shí),最好僅檢索需要的數(shù)據(jù)。不久,我們將討論如何使用 mysql_use_result函數(shù)來完成該操作。

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

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);

這個(gè)函數(shù)采用從存儲(chǔ)結(jié)果中獲取的結(jié)果結(jié)構(gòu),并且從中檢索單一行,在行結(jié)構(gòu)中返回分配給您的數(shù)據(jù)。當(dāng)沒有更多數(shù)據(jù)或者發(fā)生錯(cuò)誤時(shí),返回NULL。稍后,我們將回來處理這一行中的數(shù)據(jù)。

void mysql_data_seek(MYSQL_RES *result, my_ulonglong offset);

這個(gè)函數(shù)允許您進(jìn)入結(jié)果集,設(shè)置將由下一個(gè)獲取操作返回的行。offset是行號(hào),它必須在從0到結(jié)果集中的行數(shù)減 1 的范圍內(nèi)。傳遞0將導(dǎo)致在下一次調(diào)用mysql_fetch_row時(shí)返回第一行。

MYSQL_ROW_OFFEST mysql_row_tell(MYSQL_RES *result);

這個(gè)函數(shù)返回一個(gè)偏移值,它表示結(jié)果集中的當(dāng)前位置。它不是行號(hào),不能將它用于mysql_data_seek。但是,可將它用于:

MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET offset);

它移動(dòng)結(jié)果集中的當(dāng)前位置,并返回以前的位置。

有時(shí),這一對(duì)函數(shù)對(duì)于在結(jié)果集中的已知點(diǎn)之間跳轉(zhuǎn)很有用。請(qǐng)注意,不要將row tell和row seek使用的偏移值與data_seek使用的行號(hào)混淆。這些是不可交換的,結(jié)果將是您所希望看到的。

void mysql_free_result(MYSQL_RES *result);

完成結(jié)果集時(shí), 必須總是調(diào)用這個(gè)函數(shù),以允許MySQL庫整理分配給它的對(duì)象。



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

下面是詳細(xì)的代碼:


Code:

[Ctrl+A Select All]



到此一些基本的操作都已經(jīng)實(shí)現(xiàn)拉,呵呵,怎一個(gè)爽自了得
大家快點(diǎn)來阿

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

評(píng)論

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

編譯方法有點(diǎn)不規(guī)范。

正確的應(yīng)該是這樣:

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

2.編譯應(yīng)這樣寫:

$ gcc -o mysql mysql.c `mysql_config --cflags --libs`

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

要告訴編譯器兩個(gè)路徑:
1.編譯應(yīng)這樣寫:
#gcc -o insert insert.c -I/usr/local/mysql/include/mysql/ -L/usr/local/mysql/lib/mysql -lmysqlclient

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲男人的天堂在线aⅴ视频| 久久免费国产精品| 91久久久国产精品| 国产一区二区三区高清播放| 国产人妖伪娘一区91| 国产精品视频第一区| 国产午夜精品久久久久久久| 国内偷自视频区视频综合| 韩国av一区二区三区四区| 亚洲国产精品一区二区久| av成人天堂| 亚洲欧美久久| 久久男人资源视频| 欧美激情一区二区| 亚洲视频免费在线| 久久青青草原一区二区| 欧美久久综合| 国产日韩在线播放| 亚洲精品乱码视频| 欧美一区日韩一区| 亚洲国产欧美在线人成| 亚洲精选视频免费看| 午夜精品久久久久99热蜜桃导演| 久久综合亚州| 国产精品日韩欧美综合| 亚洲激情在线观看视频免费| 午夜视频在线观看一区| 欧美夫妇交换俱乐部在线观看| 一本色道久久88综合亚洲精品ⅰ | 一本色道久久综合亚洲91| 欧美在线视频免费播放| 欧美激情中文字幕乱码免费| 亚洲一区国产| 欧美黄色网络| 激情久久影院| 午夜欧美电影在线观看| 亚洲黑丝一区二区| 久久gogo国模啪啪人体图| 欧美日韩一区三区| 亚洲欧洲三级电影| 鲁大师影院一区二区三区| 亚洲一区三区电影在线观看| 免费观看30秒视频久久| 国产视频精品网| 亚洲一区二区伦理| 亚洲国产日本| 免费成人av资源网| 在线看国产一区| 久久久亚洲综合| 亚洲欧美区自拍先锋| 欧美日韩中文字幕日韩欧美| 久久精品免费| 免费观看亚洲视频大全| 亚洲视频在线免费观看| 美女久久网站| 激情成人av| 久久久午夜精品| 午夜综合激情| 国产精品羞羞答答| 中文欧美在线视频| 亚洲精品日产精品乱码不卡| 欧美99在线视频观看| 在线播放亚洲一区| 久久久综合视频| 久久不见久久见免费视频1| 国产精品久久夜| 欧美一区1区三区3区公司| 亚洲中午字幕| 国产一区二区三区久久精品| 久久久久一区二区三区四区| 久久国产高清| 亚洲国产精品久久久久婷婷884| 你懂的亚洲视频| 欧美成人国产| 亚洲一区二区三区视频| 亚洲欧美激情诱惑| 精品白丝av| 亚洲国产欧美国产综合一区 | 久久精品视频在线播放| 欧美一二区视频| 永久免费精品影视网站| 欧美成人一区在线| 欧美精品一区在线播放| 亚洲淫性视频| 久久本道综合色狠狠五月| 伊人精品视频| 亚洲茄子视频| 国产日韩欧美夫妻视频在线观看| 久久在线精品| 欧美国产综合视频| 午夜精品久久久久久久蜜桃app | 久久精品中文| 欧美成人官网二区| 午夜欧美理论片| 老**午夜毛片一区二区三区| 在线性视频日韩欧美| 欧美一级专区免费大片| 亚洲激情国产精品| 亚洲主播在线观看| 亚洲黄色免费电影| 亚洲调教视频在线观看| 亚洲电影激情视频网站| 亚洲婷婷免费| 亚洲精品欧美一区二区三区| 亚洲欧美成人精品| 亚洲精品久久久久久下一站 | 99成人免费视频| 午夜精彩国产免费不卡不顿大片| 亚洲国产精品视频一区| 亚洲伊人久久综合| 亚洲精一区二区三区| 欧美一区二区三区四区在线观看地址 | 欧美日本韩国一区二区三区| 久久久久国产精品一区三寸| 欧美日韩精品免费看| 美女免费视频一区| 国产精品影视天天线| 亚洲美女毛片| 亚洲欧洲一二三| 久久久亚洲高清| 久久精品一区二区三区不卡| 国产精品成人一区二区| 亚洲精品国产欧美| 亚洲国产日韩欧美在线图片| 欧美在线www| 欧美一区二区三区免费观看视频| 欧美日韩国产成人在线| 亚洲二区在线视频| 亚洲高清影视| 免费观看在线综合色| 免费不卡在线观看av| 国产综合一区二区| 性欧美1819sex性高清| 午夜久久黄色| 国产九色精品成人porny| 亚洲视频在线一区| 亚洲免费一级电影| 国产精品激情偷乱一区二区∴| 亚洲国产免费看| 99国内精品| 欧美视频在线观看一区| 99亚洲伊人久久精品影院红桃| 中文在线一区| 国产精品日韩精品欧美精品| 午夜欧美理论片| 美女主播一区| 日韩视频―中文字幕| 欧美日韩影院| 亚洲在线成人| 久久深夜福利| 亚洲日本在线观看| 欧美日韩www| 亚洲一区二区三区四区视频| 午夜在线电影亚洲一区| 国产欧美精品xxxx另类| 久久久噜噜噜久久狠狠50岁| 欧美激情一区二区三区蜜桃视频 | 中文国产成人精品久久一| 欧美性做爰毛片| 午夜精品999| 欧美gay视频| 日韩视频三区| 国产精品午夜视频| 久久免费国产| 99精品免费| 亚洲欧美三级伦理| 亚洲高清一二三区| 欧美日韩国产影片| 亚洲一区日韩| 免费国产一区二区| 日韩一区二区高清| 国产日韩欧美中文在线播放| 久久影院亚洲| 亚洲午夜久久久久久久久电影院| 久久久久国产精品一区| 亚洲精品一区二区三区婷婷月| 国产精品久久久久久久浪潮网站| 久久久免费av| 亚洲一区二区免费在线| 欧美18av| 亚洲欧美国产精品va在线观看| 好看的日韩av电影| 欧美午夜剧场| 美女主播精品视频一二三四| 日韩一级精品视频在线观看| 欧美freesex交免费视频| 亚洲影院免费| 亚洲精品久久视频| 国产综合婷婷| 国产精品一区二区三区久久久| 久久先锋资源| 国产精品99久久久久久久久久久久| 久久久亚洲成人| 在线一区二区日韩| 伊人激情综合| 国产日产欧产精品推荐色| 欧美片第一页| 欧美电影在线观看完整版| 久久精品国产免费观看| 欧美美女视频|