这个学期要做数据库的课程设计,不懂VB,不懂Delphi,不懂php,不懂asp、jsp,最终只能回归c语言了。
从网上找了很久相关资料,根据我的经验,照抄总是不行的,肯定有各种奇奇怪怪的问题。果不其言,搭建配置都要折腾。捣鼓了大半天,终于连接成功了!
#include <stdio.h>
#include <my_global.h>
#include <mysql.h>
#include <WinSock2.h>
#include <stdlib.h>
#pragma comment(lib, "libmysql.lib")
int main(int argc , char *argv[])
{
MYSQL conn; //定义数据库连接的句柄
MYSQL_RES *res; //查询结果集,结构类型
MYSQL_FIELD *fd;//包含字段信息的结构
MYSQL_ROW row; //存放一行查询结果的字符串数据 char **
unsigned int num_fields;
mysql_init(&conn);
if(!mysql_real_connect(&conn,
"127.0.0.1",
"root",
"root",
"test",
3306u,
NULL,
0))
{
fprintf(stdout, "%s\n", mysql_error(&conn));
perror("");
exit(1);
}
fprintf(stdout, "%s\n\n", mysql_stat(&conn));
if(mysql_query(&conn, "use test;"))
{
printf("%s\n", mysql_error(&conn));
exit(2);
}
if(mysql_query(&conn, "select * from department;"))
{
printf("%s\n", mysql_error(&conn));
exit(3);
}
if(!(res = mysql_use_result(&conn)))
{
printf("%s\n", mysql_error(&conn));
exit(4);
}
num_fields = mysql_num_fields(res);
printf("number of fields returned: %u\n", num_fields);
printf("Mysql tables in mysql database:\n");
while( row = mysql_fetch_row(res) )
{
int i;
for(i=0; i<num_fields; ++i)
printf("%s\t", ((NULL!=row[i])&&(strlen(row[i]))? row[i] : "NULL"));
printf("\n");
}
mysql_free_result(res);
mysql_close(&conn);
system("pause");
return 0;
}
登陆mysql :
c语言连接mysql测试结果: