當前位置:首頁 » 數據倉庫 » cmysql資料庫操作類
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

cmysql資料庫操作類

發布時間: 2022-12-30 21:34:48

c語言怎麼連接mysql資料庫 代碼

//vc工具中添加E:\WAMP\BIN\MYSQL\MYSQL5.5.8\LIB 路徑
//在工程設置-》鏈接》庫模塊中添加 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"
//定義資料庫操作的宏,也可以不定義留著後面直接寫進代碼
#define SELECT_QUERY "show tables;"
int main(int argc, char **argv) //char **argv 相當於 char *argv[]
{
MYSQL mysql,*handle; //定義資料庫連接的句柄,它被用於幾乎所有的MySQL函數
MYSQL_RES *result; //查詢結果集,結構類型
MYSQL_FIELD *field ; //包含欄位信息的結構
MYSQL_ROW row ; //存放一行查詢結果的字元串數組
char querysql[160]; //存放查詢sql語句字元串
//初始化
mysql_init(&mysql);
//連接資料庫
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]));
//查詢資料庫
if(mysql_query(handle,querysql)) {
fprintf(stderr,"Query failed (%s)\n",mysql_error(handle));
}
//存儲結果集
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));
//讀取結果集的內容
while (row = mysql_fetch_row(result)) {
printf("table: %s\n",(((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0]) ) ;
}
//釋放結果集
mysql_free_result(result);
//關閉資料庫連接
mysql_close(handle);
system("PAUSE");
//為了兼容大部分的編譯器加入此行
return 0;
}

② C語言操作MySQL資料庫,利用update函數改變表中一個值

age欄位是數值類型嗎?若是則不應該加『90』上逗號【sql="update my set age=num where id=1";】,變數及資料庫欄位也不要加;字元類型才要加『?? 』

③ C mysql_query

看你用的wamp開發目錄的話,應該是用的php mysql apache吧,一般出現這個錯誤有幾種情況:
1.你的語句有問題,比如你的sql語句字元串裡面某個地方少了個「,」逗號啊,某個地方少了一個括弧啊什麼的。
2.語句雖然正確,但是有問題,比如給一個非空欄位賦空值,或者給一個整數類型傳字元變數等等。
3.或者沒有資料庫連接。一般你可以把資料庫連接
<?php
$mysqlhost = 'localhost';
$mysqluser = 'root';
$mysqlpwd = '你的密碼';
$mysqldb = '你的資料庫名字';
$data_conn = mysql_connect($mysqlhost,$mysqluser,$mysqlpwd);
mysql_selectdb($mysqldb, $data_conn) or die ('Could not select database');
?>這段寫到一個文件裡面,然後在要用到資料庫連接的時候包含一個這個文件,就可以直接資料庫操作了,比如上面的文件是c:\wamp\www\conn.php,那麼在別的地方include('conn.php');記得mysql_close($data_conn);

然後你可以這樣解決,比如你的出問題的文件是c:\wamp\www\test.php,找到報錯的行,比如:
<?php
//include('conn.php');
你的代碼段;
$sql="你的語句";
//這里這樣調試
echo $sql;
renturn;
$result = mysql_query($sql);
//如果你的是insert或者update的話,就不用mysql_fetch_array了
$row = mysql_fetch_array($result);
...

?>
然後你在網頁直接輸出這個php文件,localhost/test.php
把輸出來的sql語句到mysql工具裡面運行下看,看看具體的報錯,一般這里的報錯就比較詳細了,無非是一些語法錯誤,少寫了些東西,或者鍵沖突,值類型什麼的。

④ c語言如何調用Mysql資料庫文件並進行對資料庫的操作呢。

MYSQL m_sqlCon;//聲明
mysql_init(&m_sqlCon);//初始化
mysql_real_connect(&m_sqlCon, "127.0.0.1", abc, "root", "hibernate", atoi("3306"),NULL,0)//鏈接
mysql_query(&m_sqlCon, "SET NAMES GB2312"); //設置查詢編碼格式
res = mysql_query(&m_sqlCon,"select * from ms_sendlist where flag = 1 order by style desc");//查詢
mysql_query(&m_sqlCon, sql);//插入,刪除

⑤ mysql資料庫

MySQL資料庫一般指MySQL,MySQL是一個關系型資料庫管理系統,由瑞典MySQL AB 公司開發。

mysql是目前網站以及APP應用上用得較多的一個開源的關系型資料庫系統,可以對數據進行保存,分段化的數據保存,也可以對其數據進行檢索,查詢等功能的資料庫。

默認的mysql資料庫中存有一個庫這個就是mysql的系統資料庫,可以對其保存系統的數據包括mysql資料庫的信息,資料庫root賬號,普通賬號,以及資料庫的名稱,還有資料庫的一些表還有一些數字型的數據類型結構都會有所保存。

mysql資料庫的優點

(1)MySQL資料庫是用C和C++語言編寫的,並且使用了多種編輯器進行測試,以保證源碼的可移植性。

(2)支持多個操作系統例如:Windows、Linux、Mac OS等等。

(3)支持多線程,可以充分的利用CPU資源。

(4)為多種編程語言提供API,包括C語言、Java、PHP、Python語言等。

(5)MySQL優化了SQL演算法,有效的提高了查詢速度。

(6)MySQL內提供了用於管理,檢查以及優化資料庫操作的管理工具。

(7)它能夠作為一個單獨的應用程序應用在客戶端伺服器網路環境中,也可以作為一個庫嵌入到其他的軟體中並提供多種語言支持。

⑥ 求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資料庫需要以下步驟:

  1. 安裝mysql開發包, linux下是mysql安裝的時候全選就行了, linux 下直接安裝mysql-devel

  2. 新建工程,占貼代碼,注意修改實際的用戶名、密碼 ...

  3. 設置包含目錄, 在windows下, 找到你的mysql安裝位置,找到include文件夾, 設置ide增加該文件夾到包含目錄 【可能是 C:Program FilesMySQLMySQL Server 5.0include】

  4. 設置連接目錄, 同設置包含目錄一樣 找到mysql的lib目錄,設置ide 【可能是C:Program FilesMySQLMySQL Server 5.0libopt】

  5. 設置連接選項, 需要設置ide連接選項,增加 -lmysql

  6. 編譯連接運行

⑦ 用C語言如何對MySQL資料庫進行操作

里的大部分代碼參考了MySQL發行包裡面的.c源文件,大家也可以去裡面找找相關的代碼,下面這段代碼實現了連接到本地MySQL伺服器上9tmd_bbs_utf8資料庫,從數據表tbb_user中根據輸入的userid取得該用戶的用戶名並列印輸出到終端。
if defined(_WIN32) || defined(_WIN64)為了支持windows平台上的編譯
#include <windows.h> #endif #include <stdio.h> #include <stdlib.h> #include "mysql.h"

我的機器上該文件在/usr/local/include/mysql下
定義MySQL資料庫操作的宏,也可以不定義留著後面直接寫進代碼
define SELECT_QUERY "select username from tbb_user where userid = %d" int main(int argc, 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_select <userid>\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't connect to engine!\n%s\n\n",mysql_error(&mysql)); perror(""); exit(1); } sprintf(qbuf,SELECT_QUERY,atoi(argv[1])); if(mysql_query(sock,qbuf)) { fprintf(stderr,"Query failed (%s)\n",mysql_error(sock)); exit(1); } if (!(res=mysql_store_result(sock))) { fprintf(stderr,"Couldn't get result from %s\n", mysql_error(sock)); exit(1); } printf("number of fields returned: %d\n",mysql_num_fields(res)); while (row = mysql_fetch_row(res)) { printf("Ther userid #%d 's username is: %s\n", atoi(argv[1]),(((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0])) ; puts( "query ok !\n" ) ; } mysql_free_result(res); mysql_close(sock); exit(0); return 0;

為了兼容大部分的編譯器加入此行
}
編譯的時候,使用下面的命令
gcc -o mysql_select ./mysql_select.c -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient (-lz) (-lm) 後面兩個選項可選,根據您的環境情況運行的時候,執行下面的命令
./mysql_select 1
將返回如下結果:
number of fields returned: 1 Ther userid #1 's username is: Michael query ok !

上面的代碼我想大部分都能看明白,不明白的可以參考一下MySQL提供的有關C語言API部分文檔,各個函數都有詳細說明,有時間我整理一份常用的API說明出來。