本文目錄一覽:
用C語言如何對MySQL數據庫進行操作
有時為了性能,我們會直接用C語言來開發相關的模塊,尤其在我們的web應用中,雖然PHP、JSP等腳本均提供了MySQL的接口,但是顯然直接使用C語言具有更好的安全性和性能,Michael以前用PHP開發的多個項目中就使用了C語言編寫的這類接口,然後再編譯到php裡面,供php腳本直接使用,這方面的話題就不多說了,下面主要說一下在Linux下如何用C語言連接MySQL數據庫,並且讀取裡面的數據返回,同時如何進行編譯。if defined(_WIN32) || defined(_WIN64)為了支持windows平台上的編譯#includewindows.h#endif#includestdio.h#includestdlib.h#includemysql.h我的機器上該文件在/usr/local/include/mysql下定義MySQL數據庫操作的宏,也可以不定義留着後面直接寫進代碼defineSELECT_QUERYselectusernamefromtbb_userwhereuserid=%dintmain(intargc,char**argv)char**argv相當於char*argv[]{MYSQL mysql,*sock;定義數據庫連接的句柄,它被用於幾乎所有的MySQL函數MYSQL_RES *res;查詢結果集,結構類型MYSQL_FIELD *fd ;包含字段信息的結構MYSQL_ROW row ;存放一行查詢結果的字符串數組char qbuf[160];存放查詢sql語句字符串if(argc!=2){//檢查輸入參數fprintf(stderr,usage:mysql_selectuserid\n\n);exit(1);}mysql_init(mysql);if(!(sock=mysql_real_connect(mysql,localhost,dbuser,dbpwd,9tmd_bbs_utf8,0,NULL,0))){fprintf(stderr,Couldn’tconnecttoengine!\n%s\n\n,mysql_error(mysql));perror();exit(1);}sprintf(qbuf,SELECT_QUERY,atoi(argv[1]));if(mysql_query(sock,qbuf)){fprintf(stderr,Queryfailed(%s)\n,mysql_error(sock));exit(1);}if(!(res=mysql_store_result(sock))){fprintf(stderr,Couldn’tgetresultfrom%s\n,mysql_error(sock));exit(1);}printf(numberoffieldsreturned:%d\n,mysql_num_fields(res));while(row=mysql_fetch_row(res)){printf(Theruserid#%d’susernameis:%s\n,atoi(argv[1]),(((row[0]==NULL)(!strlen(row[0])))?NULL:row[0]));puts(queryok!\n);}mysql_free_result(res);mysql_close(sock);exit(0);return0;為了兼容大部分的編譯器加入此行}編譯的時候,使用下面的命令gcc -o mysql_select ./mysql_select.c -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient (-lz) (-lm) 後面兩個選項可選,根據您的環境情況運行的時候,執行下面的命令./mysql_select 1將返回如下結果:numberoffieldsreturned:1Theruserid#1’susernameis:Michaelqueryok!上面的代碼我想大部分都能看明白,不明白的可以參考一下MySQL提供的有關C語言API部分文檔源碼天空,各個函數都有詳細說明,有時間我整理一份常用的API說明出來。
如何用C語言連接MYSQL數據庫
1、配置ODBC數據源。
2、使用SQL函數進行連接。
對於1、配置數據源,配置完以後就可以編程操作數據庫了。
對於2、使用SQL函數進行連接,參考代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#includewindows.h
#includesql.h
#includesqlext.h
void main()
{
HENV henv; //環境句柄
HDBC hdbc; //數據源句柄
HSTMT hstmt; //執行語句句柄
unsigned char datasource[]=”數據源名稱”; //即源中設置的源名稱
unsigned char user[]= “用戶名”; //數據庫的帳戶名
unsigned char pwd[]= “密碼”; //數據庫的密碼
unsigned char search[]=”select xm from stu where xh=0″;
SQLRETURN retcode; //記錄各SQL函數的返回情況
// 分配環境句柄
retcode= SQLAllocEnv(henv); // 等介於 SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL
, henv);
// 設置ODBC環境版本號為3.0
retcode= SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
// 分配連接句柄
retcode= SQLAllocConnect(henv,hdbc); // 等介於 SQLAllocHandle(SQL_HANDLE_DBC, henv, hdbc);
//設置連接屬性,登錄超時為*rgbValue秒(可以沒有)
// SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)(rgbValue), 0);
//直接連接數據源
// 如果是windows身份驗證,第二、三參數可以是
求c語言操作mysql數據庫實例
不知你用的是什麼代碼,不過據我實驗,以下代碼是可用的 【來自 】
#include stdlib.h
#include stdio.h
#include “mysql.h”
int main (int argc, char *argv[])
{
MYSQL *conn_ptr;
conn_ptr=mysql_init(NULL); //連接初始化
if(!conn_ptr){
fprintf(stderr, “mysql_init failed\n”);
return EXIT_FAILURE;
}
conn_ptr = mysql_real_connect(conn_ptr, “localhost”, “moldao”,”newpassword”,”moldao_test”, 0, NULL, 0); //建立實際連接
//參數分別為:初始化的連接句柄指針,主機名(或者IP),用戶名,密碼,數據庫名,0,NULL,0)後面三個參數在默認安裝mysql的情況下不用改
if(conn_ptr){
printf(“Connection success\n”);
}
else {
printf(“Connection failed\n”);
}
mysql_close(conn_ptr); //關閉連接
return EXIT_SUCCESS;
}
連接mysql數據庫需要以下步驟:
安裝mysql開發包, linux下是mysql安裝的時候全選就行了, linux 下直接安裝mysql-devel
新建工程,占貼代碼,注意修改實際的用戶名、密碼 …
設置包含目錄, 在windows下, 找到你的mysql安裝位置,找到include文件夾, 設置ide增加該文件夾到包含目錄 【可能是 C:\Program Files\MySQL\MySQL Server 5.0\include】
設置連接目錄, 同設置包含目錄一樣 找到mysql的lib目錄,設置ide 【可能是 C:\Program Files\MySQL\MySQL Server 5.0\lib\opt 】
設置連接選項, 需要設置ide連接選項,增加 -lmysql
編譯連接運行
請問mysql和Oracle分別用什麼語言寫的啊
Oracle數據庫內核是用C編寫的。但是,大部分代碼在數據庫內部執行,並且使用PL / SQL和Java(使用嵌入在內核中的JVM)進行開發。外圍工具(SQL Developer,網格控件)主要使用Java。
MySQL用C和C ++編寫。它的SQL解析器是用yacc編寫的,但它使用的是自製的詞法分析器。MySQL可在許多系統平台上工作。
擴展資料:
Oracle的文件結構:
數據庫的物理存儲結構是由一些多種物理文件組成,主要有數據文件、控制文件、重做日誌文件、歸檔日誌文件、參數文件、口令文件、警告文件等。
1、控制文件:存儲實例、數據文件及日誌文件等信息的二進制文件。alter system set control_files=‘路徑’。V$CONTROLFILE。
2、數據文件:存儲數據,以.dbf做後綴。一句話:一個表空間對多個數據文件,一個數據文件只對一個表空間。dba_data_files/v$datafile。
3、日誌文件:即Redo Log Files和Archivelog Files。記錄數據庫修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。
4、參數文件:記錄基本參數。spfile和pfile。
5、警告文件:show parameter background_dump_dest—使用共享服務器連接。
6、跟蹤文件:show parameter user_dump_dest—使用專用服務器連接 。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/310042.html