您的位置:首页 > 数据库 > MySQL

c连接mysql数据库

2011-09-02 09:33 225 查看
01
#if
defined(_WIN32)||defined(_WIN64)//为了支持windows平台上的编译
02
#include
<windows.h>
03
#endif
04
#include
<stdio.h>
05
#include
<stdlib.h>
06
#include
"mysql.h"
07
08
//定义数据库操作的宏,也可以不定义留着后面直接写进代码
09
#define
SELECT_QUERY"showtables;"
10
11
int
main(
int
argc,
char
**argv)
//char
**argv相当于char*argv[]
12
{
13
MYSQL
mysql,*handle;
//定义数据库连接的句柄,它被用于几乎所有的MySQL函数
14
MYSQL_RES
*result;
//查询结果集,结构类型
15
MYSQL_FIELD
*field;
//包含字段信息的结构
16
MYSQL_ROW
row;
//存放一行查询结果的字符串数组
17
char
querysql[160];
//存放查询sql语句字符串
18
//初始化
19
mysql_init(&mysql);
20
//连接数据库
21
if
(!(handle
=mysql_real_connect(&mysql,
"localhost"
,
"user"
,
"pwd"
,
"dbname"
,0,NULL,0)))
{
22
fprintf
(stderr,
"Couldn't
connecttoengine!\n%s\n\n"
,mysql_error(&mysql));
23
}
24
sprintf
(querysql,SELECT_QUERY,
atoi
(argv[1]));
25
//查询数据库
26
if
(mysql_query(handle,querysql))
{
27
fprintf
(stderr,
"Query
failed(%s)\n"
,mysql_error(handle));
28
}
29
//存储结果集
30
if
(!(result=mysql_store_result(handle)))
{
31
fprintf
(stderr,
"Couldn't
getresultfrom%s\n"
,
mysql_error(handle));
32
}
33
printf
(
"number
offieldsreturned:%d\n"
,mysql_num_fields(result));
34
//读取结果集的内容
35
while
(row
=mysql_fetch_row(result)){
36
printf
(
"table:
%s\n"
,(((row[0]==NULL)&&(!
strlen
(row[0])))
?
"NULL"
:
row[0]));
37
}
38
//释放结果集
39
mysql_free_result(result);
40
//关闭数据库连接
41
mysql_close(handle);
42
43
system
(
"PAUSE"
);
44
//为了兼容大部分的编译器加入此行
45
return
0;
46
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息