//vc工具中添加E:\WAMP\BIN\MYSQL\MYSQL5.5.8\LIB 路徑
成都創(chuàng)新互聯(lián)自2013年起,先為魏縣等服務(wù)建站,魏縣等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為魏縣企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
//在工程設(shè)置-》鏈接》庫模塊中添加 libmysql.lib
#include stdio.h
#include time.h
#include string.h
#include winsock.h
#include "E:\wamp\bin\mysql\mysql5.5.8\include\mysql.h"
void main(){
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server ="localhost";
char *user ="root";
char *password="";
char *database="test";
char sql[1024]="select * from chinaren";
conn=mysql_init(NULL);
if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0)){
fprintf(stderr,"%s\n",mysql_error(conn));
exit(1);
}
if(mysql_query(conn,sql)){
fprintf(stderr,"%s\n",mysql_error(conn));
exit(1);
}
res=mysql_use_result(conn);
while((row = mysql_fetch_row(res))!=NULL){
printf("%s\n",row[2]);
}
mysql_free_result(res);
mysql_close(conn);
}
===============================
#if defined(_WIN32) || defined(_WIN64) //為了支持windows平臺上的編譯
#include windows.h
#endif
#include stdio.h
#include stdlib.h
#include "mysql.h"
//定義數(shù)據(jù)庫操作的宏,也可以不定義留著后面直接寫進代碼
#define SELECT_QUERY "show tables;"
int main(int argc, char **argv) //char **argv 相當于 char *argv[]
{
MYSQL mysql,*handle; //定義數(shù)據(jù)庫連接的句柄,它被用于幾乎所有的MySQL函數(shù)
MYSQL_RES *result; //查詢結(jié)果集,結(jié)構(gòu)類型
MYSQL_FIELD *field ; //包含字段信息的結(jié)構(gòu)
MYSQL_ROW row ; //存放一行查詢結(jié)果的字符串數(shù)組
char querysql[160]; //存放查詢sql語句字符串
//初始化
mysql_init(mysql);
//連接數(shù)據(jù)庫
if (!(handle = mysql_real_connect(mysql,"localhost","user","pwd","dbname",0,NULL,0))) {
fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(mysql));
}
sprintf(querysql,SELECT_QUERY,atoi(argv[1]));
//查詢數(shù)據(jù)庫
if(mysql_query(handle,querysql)) {
fprintf(stderr,"Query failed (%s)\n",mysql_error(handle));
}
//存儲結(jié)果集
if (!(result=mysql_store_result(handle))) {
fprintf(stderr,"Couldn't get result from %s\n", mysql_error(handle));
}
printf("number of fields returned: %d\n",mysql_num_fields(result));
//讀取結(jié)果集的內(nèi)容
while (row = mysql_fetch_row(result)) {
printf("table: %s\n",(((row[0]==NULL)(!strlen(row[0]))) ? "NULL" : row[0]) ) ;
}
//釋放結(jié)果集
mysql_free_result(result);
//關(guān)閉數(shù)據(jù)庫連接
mysql_close(handle);
system("PAUSE");
//為了兼容大部分的編譯器加入此行
return 0;
}
mysql是有c語言接口的,安裝相應(yīng)庫后就可以鏈接了,一般連接mysql的函數(shù)是mysql_connect或者mysql_real_connect(大概就是這么拼的吧。。。)可以使用mysql_query執(zhí)行sql語句
#includemysql/mysql.h
#includestdio.h
intmain()
{
MYSQL*conn;
MYSQL_RES*res;
MYSQL_ROWrow;
char*server="localhost";//本地連接
char*user="root";//
char*password="525215980";//mysql密碼
char*database="student";//數(shù)據(jù)庫名
char*query="select*fromclass";//需要查詢的語句
intt,r;
conn=mysql_init(NULL);
if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0))
{
printf("Errorconnectingtodatabase:%s\n",mysql_error(conn));
}else{
printf("Connected...\n");
}
t=mysql_query(conn,query);
if(t)
{
printf("Errormakingquery:%s\n",mysql_error(conn));
}else{
printf("Querymade...\n");
res=mysql_use_result(conn);
if(res)
{
while((row=mysql_fetch_row(res))!=NULL)
{
//printf("num=%d\n",mysql_num_fields(res));//列數(shù)
for(t=0;tmysql_num_fields(res);t++)
printf("%8s",row[t]);
printf("\n");
}
}
mysql_free_result(res);
}
mysql_close(conn);
return0;
}
擴展資料
C語言使用注意事項:
1、指針是c語言的靈魂,一定要靈活的使用它:
(1)、指針的聲明,創(chuàng)建,賦值,銷毀等
(2)、指針的類型轉(zhuǎn)換,傳參,回調(diào)等
2、遞歸調(diào)用也會經(jīng)常用到:
(1)、遞歸遍歷樹結(jié)構(gòu)
(2)、遞歸搜索
方法如下:
1.頭文件:
#include
#include
#include//這個是必需要包含的,下面對mysql的所有操作函數(shù),都出自這里
2.定義一個MYSQL變量:
MYSQLmysql;
這里MYSQL是一個用于連接MySql數(shù)據(jù)庫的變量。
在后面對mysql數(shù)據(jù)庫的操作中,我們就用這個MYSQL變量作為句柄的。
3.定義數(shù)據(jù)庫參數(shù):
charhost[32]=”localhost”;
charuser[32]=”username”;
charpasswd[32]=”pwd”;
chardbname[32]=”testdb”;
4.數(shù)據(jù)庫操作
1).初始化數(shù)據(jù)庫:
mysql_init(mysql);
2).連接數(shù)據(jù)庫:
mysql_real_connect(mysql,host,user,passwd,dbname,0,NULL,0);
我們在操作時,可以對以上的函數(shù)進行if測試,如果初始化或者連接出錯,作出相應(yīng)提示,以便調(diào)試。
5.對數(shù)據(jù)庫的操作:
Mysql_query(mysql,“select*fromtestdbwherecondition”);
我們在實際操作中,為了更方便的使用程序中的某些變量,我們將會用到一個函數(shù):
intsprintf(char*str,constchar*format,?);
這個函數(shù)用來格式化我們的字符串,然后將變量按照給你的格式,賦給第一個參數(shù)。
我們使用這個方法方法可以很方便的使用我們的變量來對數(shù)據(jù)庫進行操作。例如我們將要進行數(shù)據(jù)庫的查詢操作,我們就可以這樣使用:
sprintf(sql,”select*fromtestdbwhereusername=‘%s’”,u_name);
然后使用mysql_query(mysql,sql)進行查詢。
MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQLAB公司開發(fā),屬于Oracle旗下產(chǎn)品。MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在WEB應(yīng)用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。
鏈表是一種物理存儲單元上非連續(xù)、非順序的存儲結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。鏈表由一系列結(jié)點(鏈表中每一個元素稱為結(jié)點)組成,結(jié)點可以在運行時動態(tài)生成。每個結(jié)點包括兩個部分:一個是存儲數(shù)據(jù)元素的數(shù)據(jù)域,另一個是存儲下一個結(jié)點地址的指針域。相比于線性表順序結(jié)構(gòu),操作復(fù)雜。由于不必須按順序存儲,鏈表在插入的時候可以達到O(1)的復(fù)雜度,比另一種線性表順序表快得多,但是查找一個節(jié)點或者訪問特定編號的節(jié)點則需要O(n)的時間,而線性表和順序表相應(yīng)的時間復(fù)雜度分別是O(logn)和O(1)。
庫文件的鏈接: VC++ 6.0直接在工具欄-生成-里面就有一個鏈接的 或者在文件中直接用這個語句 #pragma comment(lib,“你想用的庫文件.lib”) 格式就是這樣
if?(!mysql_real_connect(mysql,"localhost",?"root",?"",?"drug?management",?3306,?NULL,?0))?//判斷數(shù)據(jù)庫連接是否成功
if(t)?//t是mysql_real_query的返值,使用if來判斷sql語句執(zhí)行是否成功。