欢迎来到天天文库
浏览记录
ID:40793827
大小:58.50 KB
页数:23页
时间:2019-08-07
《c语言连接数据库资料》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、使用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,constchar*serv
2、er_host,constchar*sql_user_name,constchar*sql_password,constchar*db_name,unsignedintport_number,constchar*unix_socket_name,unsignedintflags);connection必须是已经初始化的连接句柄结构,server_host可以是主机名,也可以是IP地址,如果仅仅连接到本机,可以使用localhost来优化连接类型。port_number和unix_socket_name应该分别为0和NULL,除非改变了MYSQL安装的默认设置。如果无法
3、连接,返回NULL。完成连接后,在程序正常退出前,应该使用mysql_close关闭这个连接句柄。voidmysql_close(MYSQL*connection);现在我们试图调用以上函数来建立一个对以上已经建好的数据库的访问,程序为connect1.c。内容如下:#include#include#include"mysql.h"intmain(intargc,char*argv[]){MYSQL*conn_ptr;conn_ptr=mysql_init(NULL);//连接初始化if(!conn_ptr){fprintf(st
4、derr,"mysql_initfailed");returnEXIT_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("Connectionsuccess");}else{printf("Conne
5、ctionfailed");}mysql_close(conn_ptr);//关闭连接returnEXIT_SUCCESS;}然后编译:#gcc-I/usr/include/mysqlconnect1.c-lmysqlclient-oconnect1connect1.c:4:19:错误:mysql.h:没有那个文件或目录提示是没有找到mysql.h,产生这个错误的原因是没有mysql.h文件,它在mysql-devel包中,需要安装这个包:sudoyuminstallmysql-devel-y然后找一下:#locatemysql.h/usr/include/mys
6、ql/mysql.h这样就可以找到这个头文件了(-I的含义是在指定位置搜索头文件,参见mangcc)。再次尝试编译:#gcc-I/usr/include/mysqlconnect1.c-lmysqlclient-oconnect1/usr/bin/ld:cannotfind-lmysqlclientcollect2:ld返回1链接库有问题,找不到mysqlclient链接库,mangcc发现可以在后面用-L指定搜索位置,于是我们先找到mysqlclient库的位置:locate*mysqlclient*/usr/lib/mysql/libmysqlclient.a/u
7、sr/lib/mysql/libmysqlclient.so/usr/lib/mysql/libmysqlclient.so.15/usr/lib/mysql/libmysqlclient.so.15.0.0/usr/lib/mysql/libmysqlclient_r.a/usr/lib/mysql/libmysqlclient_r.so/usr/lib/mysql/libmysqlclient_r.so.15/usr/lib/mysql/libmysqlclient_r.so.15.0.0这样找到位置就可以编译了:gcc-I/usr/includ
此文档下载收益归作者所有