- 論壇徽章:
- 0
|
請看下面的代碼:
- [Copy to clipboard]
- #include <mysql.h>
- #include <errmsg.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main()
- {
- MYSQL mysql;
- MYSQL_RES *result,*result2;
- MYSQL_ROW row,row2;
- char ord[600];
- char value[20];
- my_ulonglong num;
- mysql_init(&mysql);
- mysql_real_connect(&mysql,"localhost","root","820723",NULL,0,NULL,0);
- mysql_query(&mysql,"show databases;");
- result = mysql_use_result(&mysql);
- while(row = mysql_fetch_row(result)) { //判斷是不是有數(shù)據(jù)庫,如果有報下已經(jīng)存在數(shù)據(jù)庫,沒有就建一個
- if (row) {
- printf("have databases!");
- fflush(stdout);
- } else {
- mysql_query(&mysql,"create database hlo;");
- fflush(stdout);
- }
- }
- mysql_query(&mysql,"use usertable");
- sprintf(ord,"create table usertable (username varchar(16),ID int(6),ip_address varchar(16),port int(6),online_offline int(1),password varchar(7));");
- mysql_query(&mysql,ord);
- sprintf(ord,"select username from username where username=\"nihao\";");
- mysql_query(&mysql,ord); //查看table中有沒有username=nihao的那行,如果有的話有幾行?(包括0行)
- result = mysql_store_result(&mysql);
- num=mysql_num_rows(result);
- printf("%d",num);
- mysql_free_result(result);
- }
復(fù)制代碼
請看上面的代碼.,編譯是:
- gcc -ggdb3 -o fydream sql.c -I/usr/include/mysql -L /usr/lib/mysql -lmysqlclient
- 成功
- [root@freeman ~]# ./fydream
- have databases!段錯誤
復(fù)制代碼
我用gdb調(diào),發(fā)現(xiàn)是num=mysql_num_rows(result);這里段錯誤了,希望得到朋友們的指點,很著急的,在線等!謝謝了!
我還發(fā)現(xiàn),在同一個函數(shù)中不能連續(xù)使用mysql_fetch_row,一旦使用就會和上面的結(jié)果一樣,在執(zhí)行到第二個mysql_fetch_row時
就段錯誤了! |
|