libmySQL.dll 複製至 C:\Windows\System32;若為 64 位元系統,另需複製至 C:\Windows\SysWOW64。include 目錄。libmysql.lib。#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
#include <winsock2.h>
MYSQL mysql, *sock;
int main(void) {
const char *host = "127.0.0.1";
const char *user = "root";
const char *passwd = "your_password";
const char *db = "testmysql";
unsigned int port = 3306;
const char *unix_sock = NULL;
unsigned long flag = 0;
const char *query = "SELECT * FROM test";
MYSQL_RES *res;
MYSQL_ROW row;
mysql_init(&mysql);
if (!(sock = mysql_real_connect(&mysql, host, user, passwd, db, port, unix_sock, flag))) {
fprintf(stderr, "連線失敗:%s\n", mysql_error(&mysql));
exit(1);
}
puts("連線 MySQL 成功!");
if (mysql_query(&mysql, query)) {
fprintf(stderr, "查詢失敗:%s\n", mysql_error(&mysql));
exit(1);
}
if (!(res = mysql_store_result(&mysql))) {
fprintf(stderr, "儲存結果集失敗\n");
exit(1);
}
while ((row = mysql_fetch_row(res))) {
printf("name: %s\tage: %s\n", row[0], row[1]);
}
mysql_free_result(res);
mysql_close(sock);
system("pause");
return 0;
}
若出現 error LNK2019: 無法解析的外部符號 _mysql_init@4,請確認步驟 3 是否正確加入 libmysql.lib,且專案目標平台(x86/x64)與庫檔架構一致。
程式會印出資料表 test 中的所有列,格式為 name: xxx age: yyy。