使用C訪問MySQL

在本教程中,我向社區介紹瞭如何使用C編程語言訪問MySQL數據庫,而又不使用過多的依賴關係,

libmysqlclient

我希望它對那些需要此類文檔的人有用,從而繼續為SL社區做出貢獻,並為那些沒有INTERNET的人們提供幫助。

組態

首先,我們必須檢查是否已安裝設計庫 *-dev 以便能夠從C / C ++訪問MySQL。

mysql_config--庫

它應該看起來像這樣:

-Wl,-Bsymbolic函數-L / usr / lib / mysql -lmysqlclient rdynamic

如果您檢查未安裝該庫,我們將使用以下命令進行安裝:

sudo apt-get install libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX

由於我們驗證並安裝了MySQL和C之間的鏈接所需的內容,因此我們繼續創建數據庫:

創建數據庫測試; 使用測試; 創建表數據(id int AUTO_INCREMENT NOT NULL PRIMARY KEY,名稱varchar(40),age int); 將數據插入(NULL,'Alma Hernandez',28),(NULL,'Jose Sanchez',39),(NULL,'Martin loera',25),(NULL,'Leonardo Cortez',26),(NULL ,“古斯塔沃·羅梅羅”,25歲);

編程與編譯

我們繼續創建代碼:

Query.c

/ *要使用的庫* / #include / *庫,使我們能夠使用MySQL的連接和查詢* / #include / *為了使用printf等* / int main(){MYSQL * conn; / * MySQL的連接變量* / MYSQL_RES * res; / *將包含查詢結果的變量* / MYSQL_ROW行; / *變量,將包含所查詢的每個記錄的字段* / char * server =“ localhost”; / *服務器地址127.0.0.1,localhost或ip地址* / char * user =“ root”; / *用戶查詢數據庫* / char * password =“ root”; / *有關用戶的密碼* / char * database =“ test”; // *要查詢的數據庫名稱* / conn = mysql_init(NULL); / *初始化以使連接為空* // *連接到數據庫* / if(!mysql_real_connect(conn,服務器,用戶,密碼,數據庫,0,NULL,0)){/ *定義先前設置的連接參數* / fprintf(stderr,“%s \ n”,mysql_error(conn)); / *如果有錯誤,請定義哪個錯誤* /退出(1); } / *發送SQL查詢* / if(mysql_query(conn,“從數據中選擇*”)){/ *查詢的定義和連接的源* / fprintf(stderr,“%s \ n”,mysql_error( conn)); 出口(1); } res = mysql_use_result(conn);
	的printf(“ ID \ tName \ t \ age \ n”); while((row = mysql_fetch_row(res))!= NULL)/ *循環遍歷變量res並獲取所有要使用的記錄* /
		的printf(“%s \ t%s \ t%s \ n”,第[0]行,第[1]行,第[2]行); / *行變量成為表中字段數的數組* / / *釋放res變量並關閉連接* / mysql_free_result(res); mysql_close(conn); }

我們編譯:

gcc -o查詢$(mysql_config --cflags)Query.c $(mysql_config -libs)

驗證

我們執行:

./查詢

來源: Hugo4295的博客


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   rat月 他說:

    很好,保存在我的控制台腳本和教程庫中! 為您的伴侶+1 ...

  2.   羅德里戈 他說:

    您好,祝賀您在網絡上解決此問題的一切,您最接近該解決方案。 只是有點疑問,我為什麼不獲得可執行文件?

    在發生衝突時,它不會標記任何錯誤,但是不會生成./ser4

  3.   安德烈洛 他說:

    任何想法如何在Fedora中做到嗎?

  4.   勝利者德拉奧 他說:

    我不會不同意共享信息,但是如果沒有放置版權,因為此示例是我自2011年以來製作的,這是原始來源的地址

    http://hugo4295.blogspot.mx/search?q=MYSQL

    1.    拉夫 他說:

      Victor沒問題,但是如果您注意到我不是從您的網站上獲取該文章,而是從另一個不幸的地方,他們沒有提供源。 但是,現在我編輯文章..😉

  5.   阿方索·奧維迪奧·洛佩斯·莫拉萊斯 他說:

    優秀的分享知識,極大的自由

  6.   丹妮拉·費爾南德斯(DANIELA FERNANDEZ) 他說:

    以及如何進行插入?