程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> Windows下C語言連接MySQL

Windows下C語言連接MySQL

編輯:關於C
 1.把安裝好的MySQL目錄裡的libmySQL.dll復制到C:\Windows\system32\下(我的是win7,還要添加到:C:\Windows\SysWOW64目錄中);
2.把MySQL的頭文件添加到環境中:

 
3.把libmysql.lib添加到VS 2010的項目中。

4.示例代碼:
 
[cpp]      *      
* 文件名:mysql.c                *
*                        *
* 功能:連接MySQL並查詢              *
*                        *
**********************************************/ 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <mysql.h>  //包含MySQL所需要的頭文件 
#include <WinSock2.h> //Socket,連接MySQL也需要用的 
 
 
MYSQL mysql, *sock;   //聲明MySQL的句柄 
 
int main(void) 
{  
    const char * host = "127.0.0.1";  //因為是作為本機測試,所以填寫的是本地IP 
    const char * user = "root";       //這裡改為你的用戶名,即連接MySQL的用戶名 
    const char * passwd = "yangfamily"; //這裡改為你的用戶密碼 
    const char * db = "testmysql";      //這裡改為你要連接的數據庫的名字 
    unsigned int port = 3306;           //這是MySQL的服務器的端口,如果你沒有修改過的話就是3306。 
    const char * unix_socket = NULL;    //unix_socket這是unix下的,我在Windows下,所以就把它設置為NULL 
    unsigned long client_flag = 0;      //這個參數一般為0 
 
    const char * i_query = "select * from test"; //查詢語句 
 
    MYSQL_RES * result;                          //保存結果集的 www.2cto.com  
    MYSQL_ROW row;                               //代表的是結果集中的一行 
 
    mysql_init(&mysql);                          //連接之前必須使用這個函數來初始化 
    if ( (sock = mysql_real_connect(&mysql, host, user, passwd, db, port, unix_socket, client_flag) ) == NULL ) //連接MySQL 
    { 
        printf("連接失敗,原因是: \n"); 
        fprintf(stderr, " %s\n", mysql_error(&mysql)); 
        exit(1); 
    } 
    else 
    { 
        fprintf(stderr, "連接MySQL成功!!\n"); 
    } 
 
    if ( mysql_query(&mysql, i_query) != 0 )       //如果連接成功,則開始查詢 
    { 
        fprintf(stderr, "查詢失敗!\n"); 
        exit(1); 
    } 
    else 
    { 
        if ( (result = mysql_store_result(&mysql)) == NULL ) //保存查詢的結果 
        { 
            fprintf(stderr, "保存結果集失敗!\n"); 
            exit(1); 
        } 
        else 
        { 
            while ( (row = mysql_fetch_row(result)) != NULL ) //讀取結果集中的數據,返回的是下一行。因為保存結果集時,當前的游標在第一行【之前】 
            { 
                printf("name is %s\t", row[0]);               //打印當前行的第一列的數據 
                printf("age is %s\t\n", row[1]);              //打印當前行的第二列的數據 
            } 
        } 
 
    } 
    mysql_free_result(result);                                //釋放結果集 
    mysql_close(sock);                                        //關閉連接 
    system("pause"); 
    exit(EXIT_SUCCESS); 


 如果編譯時出現:
error LNK2019: 無法解析的外部符號_mysql_init@4 類似的錯誤,請確保:第三步libsql.lib添加了。
5.我的測試結果:
MySQL中的數據:

 
編程時查詢出的數據:

 



摘自 用文章記錄成長
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved