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中的數據:
編程時查詢出的數據:
摘自 用文章記錄成長