ubuntu c mysql_Ubuntu下MySql和C连接的一些问题
Ubuntu下MySql和C連接的一些問題
xinjinlong | 2010-11-15 17:28:01 ?? 閱讀:3224
發(fā)布文章
接上一貼繼續(xù),主要是用C從MySql里讀取數(shù)據(jù),中間遇到了一些問題幸好本人平時(shí)為人和善終于把問題解決了,今天特拿來(lái)于各位分享,好了,閑話少說(shuō),步入正題:
第一,安裝MySql:
1、sudo apt-get intsall mysql-server
2、sudo apt-get install mysql-client
3、判斷是否安裝成功:
sudo netstat -tap | grep mysql
如果安裝成功會(huì)出現(xiàn)現(xiàn)面的提示:
tcp 0 0 localhost.localdomain:mysql *:* LISTEN
如果沒有成功,重新啟動(dòng)MySql:sudo /etc/init.d/mysql restart
4、直接在中斷下面進(jìn)入MySql:sudo mysql -u root -p
第二:安裝要和C 語(yǔ)言連接是的MySql的庫(kù)文件和頭文件:
sudo apt-get install libmysqlclient15-dev
你可以看看是否安裝成功,運(yùn)行下面命令:
cd /usr/include/mysql 查看頭文件是否有
cd /usr/lib/mysql 查看庫(kù)文件是否有
第三:編寫測(cè)試實(shí)例
1、創(chuàng)建自己的數(shù)據(jù)庫(kù)
登錄MySql :create database db1和create table test
2、編寫C語(yǔ)言測(cè)試程序:
//test.c
#include
#include
int main(int argc, char **argv)
{
MYSQL mysql_conn; /* Connection handle */
MYSQL_RES *mysql_result; /* Result handle */
MYSQL_ROW mysql_row; /* Row data */
int f1, f2, num_row, num_col;
if (mysql_init(&mysql_conn) != NULL)
{
if (mysql_real_connect(&mysql_conn, "localhost", "user",
"password", "db1", MYSQL_PORT, NULL, 0) != NULL)
{
mysql_query(&mysql_conn,"SET NAMES 'utf8' ");//為了防止有中文讀出是??
if (mysql_query(&mysql_conn, "select * from test") == 0)
{
mysql_result = mysql_store_result(&mysql_conn);
num_row = mysql_num_rows(mysql_result);
/* Get the no. of row */
num_col = mysql_num_fields(mysql_result);
/* Get the no. of column */
printf("row=%d, col=%d\n",num_row,num_col);
for (f1 = 0; f1 < num_row; f1++)
{
mysql_row = mysql_fetch_row(mysql_result);
for (f2 = 0; f2 < num_col; f2++)
{
/* Fetch one by one */
printf("[Row %d, Col %d] ==> [%s]\n", f1, f2, mysql_row[f2]);
}
}
} else
{
(void) printf("Query fails\n");
}
} else
{
(void) printf("Connection fails\n");
}
} else
{
(void) printf("Initialization fails\n");
}
mysql_free_result(mysql_result);
mysql_close(&mysql_conn);
printf("quit\n");
return 0;
}
因?yàn)閿?shù)據(jù)庫(kù)里面有漢字,查了一些資料也要在連接數(shù)據(jù)源是設(shè)置字符集,但是就是不知道把這句:mysql_query(&mysql_conn,"SET NAMES 'utf8' ");
放到什么位置,程序明明已經(jīng)來(lái)連接一次數(shù)據(jù)源,難道還要鏈接嗎?
最后實(shí)在沒有辦法就連接兩次,一次設(shè)置字符集,一次查詢,誰(shuí)知道成功讀出漢字,可能是本人巧合,不求甚解吧?
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。
參與討論
請(qǐng)登錄...
登錄后參與討論
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的ubuntu c mysql_Ubuntu下MySql和C连接的一些问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 输出参数赋值_【Mysql
- 下一篇: java程序经过编译后会产生byte c