c语言连接数据库.doc
文本预览下载声明
使用C语言操作MySQL数据库
1.连接数据库。
从C语言连接MySQL数据库包含两个步骤:
a)初始化连接句柄结构;
b)实际创建连接。
首先使用mysql_init初始化连接句柄:
MYSQL * mysql_init (MYSQL *);
通常传递一个空指针给mysql_init这个函数,它会返回一个指向新分配的连接句柄结构的指针。
如果传递一个已有的结构,他将被重新初始化。如果出错,返回NULL。
初始化成功后,则使用mysql_real_connect来创建一个实际的连接:
MYSQL * mysql_real_connect(MYSQL * connection,
const char * server_host,
const char * sql_user_name,
const char * sql_password,
const char *db_name,
unsigned int port_number,
const char * unix_socket_name,
unsigned int flags
);
connection必须是已经初始化的连接句柄结构,server_host可以是主机名,也可以是IP地址,如果仅仅连接到本机,
可以使用 localhost来优化连接类型。port_number和unix_socket_name应该分别为0和NULL,除非改变了MYSQL安装的默认 设置。
如果无法连接,返回NULL。完成连接后,在程序正常退出前,应该使用mysql_close关闭这个连接句柄。
void mysql_close(MYSQL * connection);
现在我们试图调用以上函数来建立一个对以上已经建好的数据库的访问,程序为connect1.c。内容如下:
#include stdlib.h
#include stdio.h
#include mysql.h
int main (int argc, char *argv[])
{
MYSQL *conn_ptr;
conn_ptr=mysql_init(NULL); //连接初始化
if(!conn_ptr){
fprintf(stderr, mysql_init failed\n);
return EXIT_FAILURE;
}
conn_ptr = mysql_real_connect(conn_ptr, localhost, moldao,newpassword,moldao_test, 0, NULL, 0);
//建立实际连接
//参数分别为:初始化的连接句柄指针,主机名(或者IP),用户名,密码,数据库名,0,NULL,0)
后面三个参数在默认安装mysql的情况下不用改
if(conn_ptr){
printf(Connection success\n);
}
else {
printf(Connection failed\n);
}
mysql_close(conn_ptr); //关闭连接
return EXIT_SUCCESS;
}
然后编译:
#gcc -I/usr/include/mysql connect1.c -lmysqlclient -o connect1
connect1.c:4:19: 错误:mysql.h:没有那个文件或目录
提示是没有找到mysql.h,产生这个错误的原因是没有mysql.h文件,它在mysql-devel包中,需要安装这个包:
sudo yum install mysql-devel -y
然后找一下:
#locate mysql.h
/usr/incl
显示全部