方法如下:
1.頭文件:
#include
#include
#include//這個是必需要包含的,下面對mysql的所有操作函數,都出自這里
2.定義一個MYSQL變數:
MYSQLmysql;
這里MYSQL是一個用於連接MySql資料庫的變數。
在後面對mysql資料庫的操作中,我們就用這個MYSQL變數作為句柄的。
3.定義資料庫參數:
charhost[32]=」localhost」;
charuser[32]=」username」;
charpasswd[32]=」pwd」;
chardbname[32]=」testdb」;
4.資料庫操作
1).初始化資料庫:
mysql_init(&mysql);
2).連接資料庫:
mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0);
我們在操作時,可以對以上的函數進行if測試,如果初始化或者連接出錯,作出相應提示,以便調試。
5.對資料庫的操作:
Mysql_query(&mysql,「select*fromtestdbwherecondition」);
我們在實際操作中,為了更方便的使用程序中的某些變數,我們將會用到一個函數:
intsprintf(char*str,constchar*format,?);
這個函數用來格式化我們的字元串,然後將變數按照給你的格式,賦給第一個參數。
我們使用這個方法方法可以很方便的使用我們的變數來對資料庫進行操作。例如我們將要進行資料庫的查詢操作,我們就可以這樣使用:
sprintf(sql,」select*fromtestdbwhereusername=『%s』」,u_name);
然後使用mysql_query(&mysql,sql)進行查詢。
MySQL是一個關系型資料庫管理系統,由瑞典MySQLAB公司開發,屬於Oracle旗下產品。MySQL是最流行的關系型資料庫管理系統之一,在WEB應用方面,MySQL是最好的RDBMS(,關系資料庫管理系統)應用軟體之一。
鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。相比於線性表順序結構,操作復雜。由於不必須按順序存儲,鏈表在插入的時候可以達到O(1)的復雜度,比另一種線性表順序錶快得多,但是查找一個節點或者訪問特定編號的節點則需要O(n)的時間,而線性表和順序表相應的時間復雜度分別是O(logn)和O(1)。
⑵ 用C語言怎麼實現與資料庫的連接
#include<mysql/mysql.h>
#include<stdio.h>
intmain()
{
MYSQL*conn;
MYSQL_RES*res;
MYSQL_ROWrow;
char*server="localhost";//本地連接
char*user="root";//
char*password="525215980";//mysql密碼
char*database="student";//資料庫名
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 ",mysql_error(conn));
}else{
printf("Connected... ");
}
t=mysql_query(conn,query);
if(t)
{
printf("Errormakingquery:%s ",mysql_error(conn));
}else{
printf("Querymade... ");
res=mysql_use_result(conn);
if(res)
{
while((row=mysql_fetch_row(res))!=NULL)
{
//printf("num=%d ",mysql_num_fields(res));//列數
for(t=0;t<mysql_num_fields(res);t++)
printf("%8s",row[t]);
printf(" ");
}
}
mysql_free_result(res);
}
mysql_close(conn);
return0;
}
(2)c語言連接資料庫代碼擴展閱讀
C語言使用注意事項:
1、指針是c語言的靈魂,一定要靈活的使用它:
(1)、指針的聲明,創建,賦值,銷毀等
(2)、指針的類型轉換,傳參,回調等
2、遞歸調用也會經常用到:
(1)、遞歸遍歷樹結構
(2)、遞歸搜索
⑶ c語言怎樣連接資料庫(c語言和資料庫連接)
1、配置ODBC數據源。
2、使用SQL函數進行連接。
對於1、配置數據源,配置完以後就可以編程操作資料庫了。
對於2、使用SQL函數進行連接,參考代碼如下:
#include
#include
#include
voidmain()
{
HENVhenv;//環境句柄
HDBChdbc;//數據源句柄
HSTMThstmt;//執行語句句柄
unsignedchardatasource[]="數據源名稱";//即源中設置的源名稱
unsignedcharuser[]="用戶名";//數襲此據庫的帳戶拍野迅名
unsignedcharpwd[]="密碼";//資料庫的密碼
unsignedcharsearch[]="selectxmfromstuwherexh=0";
SQLRETURNretcode;//記錄各SQL函數的返回情況
//分配環境句柄
retcode=SQLAllocEnv(&henv);//等介於(SQL_HANDLE_ENV,SQL_NULL
,&henv);
//設置ODBC環境版本號為3.0
retcode=(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
//分配連接句柄
retcode=(henv,&hdbc);//等介於(SQL_HANDLE_DBC,henv,&hdbc);
//設置連接屬性,登錄超時為*rgbValue秒(可以沒有)
//(hdbc,SQL_LOGIN_TIMEOUT,(SQLPOINTER)(rgbValue),0);
//直接連接數據源
//如果是windows身份驗證,第二、三參數可以是
,也可以是任何字串
//SQL_NTS即"
retcode=SQLConnect(hdbc,datasource,SQL_NTS,user,SQL_NTS,pwd,SQL_NTS);
//分配語句句柄
retcode=(hdbc,&hstmt);//等介於(SQL_HANDLE_STMT,hdbc,&hstmt);
//直接執行查詢語句
retcode=(hstmt,search,SQL_NTS);
//將數據緩沖區綁定資料庫中的相應脊塵欄位(i是查詢結果集列號,queryData是綁定緩沖區,BUFF_LENGTH是緩沖區長度)
SQLBindCol(hstmt,i,SQL_C_CHAR,queryData[i-1],BUFF_LENGTH,0);
//遍歷結果集到相應緩沖區queryData
SQLFetch(hstmt);
/*
*對遍歷結果的相關操作,如顯示等
*/
//注意釋放順序,否則會造成未知錯誤!
(SQL_HANDLE_STMT,hstmt);
(hdbc);
(SQL_HANDLE_DBC,hdbc);
(SQL_HANDLE_ENV,henv);
}
⑷ 求c語言操作mysql資料庫實例
不知你用的是什麼代碼,不過據我實驗,以下代碼是可用的 【來自 http://blog.csdn.net/andy_yf/article/details/7487307】
#include<stdlib.h>
#include<stdio.h>
#include"mysql.h"
intmain(intargc,char*argv[])
{
MYSQL*conn_ptr;
conn_ptr=mysql_init(NULL);//連接初始化
if(!conn_ptr){
fprintf(stderr,"mysql_initfailed ");
returnEXIT_FAILURE;
}
conn_ptr=mysql_real_connect(conn_ptr,"localhost","mol","newpassword","mol_test",0,NULL,0);//建立實際連接
//參數分別為:初始化的連接句柄指針,主機名(或者IP),用戶名,密碼,資料庫名,0,NULL,0)後面三個參數在默認安裝mysql>的情況下不用改
if(conn_ptr){
printf("Connectionsuccess ");
}
else{
printf("Connectionfailed ");
}
mysql_close(conn_ptr);//關閉連接
returnEXIT_SUCCESS;
}
連接mysql資料庫需要以下步驟:
安裝mysql開發包, linux下是mysql安裝的時候全選就行了, linux 下直接安裝mysql-devel
新建工程,占貼代碼,注意修改實際的用戶名、密碼 ...
設置包含目錄, 在windows下, 找到你的mysql安裝位置,找到include文件夾, 設置ide增加該文件夾到包含目錄 【可能是 C:Program FilesMySQLMySQL Server 5.0include】
設置連接目錄, 同設置包含目錄一樣 找到mysql的lib目錄,設置ide 【可能是C:Program FilesMySQLMySQL Server 5.0libopt】
設置連接選項, 需要設置ide連接選項,增加 -lmysql
編譯連接運行
⑸ c語言如何和資料庫連接
C函數庫沒有相應的資料庫連接介面函數。
只能夠嘗試用二進制或文本模式讀寫文件,來模擬相應的資料庫操作等。
可以嘗試下C++庫類,裡面有資料庫連接的介面
⑹ c語言怎麼連接mysql資料庫
mysql是有c語言介面的,安裝相應備判鉛庫後就可以鏈接了,一般連接mysql的函數是mysql_connect或者mysql_real_connect(大概就是這么拼的吧。。。)可以使仿好用mysql_query執行sql語沖冊句
⑺ SQL資料庫怎麼和C語言聯系
連接到SAMPLE資料庫,查詢LASTNAME為JOHNSON的FIRSTNAME信息。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "util.h"
#include <sqlca.h>``
EXEC SQL INCLUDE SQLCA;
main()
{
EXEC SQL BEGIN DECLARE SECTION;
char firstname[13];
char userid[9];
char passwd[19];
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO sample;
EXEC SQL SELECT FIRSTNME INTO :firstname
FROM employee
WHERE LASTNAME = 'JOHNSON';
printf( "First name = %s\n", firstname );
EXEC SQL CONNECT RESET;
return 0;
}
上面是一個簡單的靜態嵌入SQL語句的應用程序。它包括了嵌入SQL的主要部分:
(1)中的include SQLCA語句定義並描述了SQLCA的結構。SQLCA用於應用程序和資料庫之間的通訊,其中的SQLCODE返回SQL語句執行後的結果狀態。
(2)在BEGIN DECLARE SECTION和END DECLARE SECTION之間定義了宿主變數。宿主變數可被SQL語句引用,也可以被C語言語句引用。它用於將程序中的數據通過SQL語句傳給資料庫管理器,或從資料庫管理器接收查詢的結果。在SQL語句中,主變數前均有「:」標志以示區別。
(3)在每次訪問資料庫之前必須做CONNECT操作,以連接到某一個資料庫上。這時,應該保證資料庫實例已經啟動。
(4)是一條選擇語句。它將表employee中的LASTNAME為「JOHNSON」的行數據的FIRSTNAME查出,並將它放在firstname變數中。該語句返回一個結果。可以通過游標返回多個結果。當然,也可以包含update、insert和delete語句。
(5)最後斷開資料庫的連接。
從上例看出,每條嵌入式SQL語句都用EXEC SQL開始,表明它是一條SQL語句。這也是告訴預編譯器在EXEC SQL和「;」之間是嵌入SQL語句。如果一條嵌入式SQL語句佔用多行,在C程序中可以用續行符「\」。