因為最近聊天室的專案需要使用資料庫,所以我在這裡寫一篇部落格來講解一下如何用c語言來使用聊天室;
mysql_init(mysql *mysql)
初始化乙個控制代碼;
mysql_library_init(0, null, null)
連線資料庫的重要一步:
接下來還有最重要的一步就是為你的資料庫設定中文字符集,不然你資料庫裡的中文列印出來會變成??
mysql_set_character_set(&mysql, "utf8")
好了到此為止資料庫就和你寫的c程式連線在了一起;
如何使用資料庫,其實和在資料庫裡面差不多,就是把在資料庫裡面使用的語句變成字串存到乙個陣列裡,然後呼叫相關函式就可以了;
mysql_query(mysql *mysql, const char* string)
mysql_query(&mysql, "udpate sad set name = \"xzwb\" where some = \"123\"")
這樣就可以將修改sad
表中some
是123
的資料的name
修改為xzwb
;
我們在上面呼叫完了mysql_query(&mysql, "select *form sad")
以後呼叫成功返回0;
然後我們使用mysql_res *result = mysql_store_result(&mysql))
這個函式會返回你查詢到的所有資料;包括(表頭,每一行的資料);如果沒有查到資料那麼result為空
像修改資料,刪除資料都會返回空
我們要怎麼樣去讀取result
裡面的東西呢?
我們會使用unsigned int num_fields = mysql_num_fields(result)
這個函式會返回你這張表有多少列;現在num_fields
就代表我們這張表的列數;
進入正題讀取表頭(其實在我們寫聊天室的時候是不需要讀取表頭的因為你建立好了資料表每次都會使用where
子句所以每次只會返回一行資料,在那一行裡你知道自己是怎麼建表的所以知道第幾列放的是啥)
mysql_field *field = mysql_fetch_field(result)
這個函式每次會返回乙個表頭資訊,所以如果我們要列印整個表頭:
while
((field =
mysql_fetch_field
(result)))
printf
("\n"
);
mysql_row row = mysql_fetch_row(result)
使用這個函式每次就會返回一行,其實這裡的row
就是乙個字串陣列通過row[0] row[1].....
來檢視或者使用表裡面的資料;
例如我們現在要列印:
while
(row =
mysql_fetch_row
(result)
)printf
("\n");
}
上面的num_fields
是我們之前取得的有多少列;
記住我們這裡讀取到的全部都是字串,所以我們不能直接與整形資料進行比較;
例如我沒現在要用row[0]
和int i = 5
比較
if
(i ==
atoi
(row[0]
))
我覺得sprintf
這個函式在運算元據庫的時候很有用;
例如:
char name=
"xzwb"
;char buff[
100]
;sprintf
(buff,
"select *from sad where name = \"%s\""
, name)
;
這樣就很實用;
差點忘記了,最後不要忘記關閉資料庫的連線
mysql_close
(&mysql)
;mysql_library_end()
;
接下來會展示乙個我簡單封裝過的資料表的列印
mysql accept_mysql
(void
)//初始化資料庫if(
mysql_library_init(0
,null
,null)!=
0)//連線資料庫if(
null
==mysql_real_connect
(&mysql,
"127.0.0.1"
,"root"
,"520520cw...",,
0,null,0
))//設定中文字符集if(
mysql_set_character_set
(&mysql,
"utf8"
)<0)
printf
("連線mysql資料庫成功!\n");
return mysql;
}int
use_mysql
(const
char
*string, mysql mysql1)
printf
("\n");
while
(row =
mysql_fetch_row
(result))}
printf
("\n");
}}mysql_free_result
(result);}
else
return0;
}int
close_mysql
(mysql mysql)
C語言操作mysql資料庫
usr local mysql support files mysql.server startmysql uroot p1 u 後邊接使用者名稱 p 後邊代表密碼 i 代表路徑 標頭檔案的目錄 l 動態庫的路徑 指定庫的路徑 l 指定需連線的庫名 gcc dm01 hello.c o dm01 h...
C語言操作Mysql資料庫API
1 功能 獲得或初始化乙個mysql結構 所需標頭檔案 include 函式原型 mysql mysql init mysql mysql 函式返回值 乙個被始化的mysql 控制代碼 備註 在記憶體不足的情況下,返回null2 函式功能 連線乙個mysql伺服器 1 所需標頭檔案 include ...
C語言對mysql資料庫的操作
這已經是一相當老的話題。不過今天我才首次使用,把今天的一些體會寫下來,也許能給一些新手帶來一定的幫助,更重要的是供自己今後忘記的怎麼使用而進行查閱的!我們言歸正傳 1 標頭檔案 include include include 這個是必需要包含的,下面對mysql的所有操作函式,都出自這裡 2.定義乙...