使用C访问MySQL

在本教程中,我向社区介绍了如何使用C编程语言访问MySQL数据库,而又不使用过多的依赖关系,

libmysqlclient

我希望它对那些需要此类文档的人有用,从而继续为SL社区做出贡献,并为那些没有INTERNET的人们提供帮助。

组态

首先,我们必须检查是否已安装设计库 *-dev 以便能够从C / C ++访问MySQL。

mysql_config--库

它应该看起来像这样:

-Wl,-Bsymbolic函数-L / usr / lib / mysql -lmysqlclient rdynamic

如果您检查未安装该库,我们将使用以下命令进行安装:

sudo apt-get install libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX

由于我们验证并安装了MySQL和C之间的链接所需的内容,因此我们继续创建数据库:

创建数据库测试; 使用测试; 创建表数据(id int AUTO_INCREMENT NOT NULL PRIMARY KEY,名称varchar(40),age int); 将数据插入(NULL,'Alma Hernandez',28),(NULL,'Jose Sanchez',39),(NULL,'Martin loera',25),(NULL,'Leonardo Cortez',26),(NULL ,“古斯塔沃·罗梅罗”,25岁);

编程与编译

我们继续创建代码:

Query.c

/ *要使用的库* / #include / *库,使我们能够使用MySQL的连接和查询* / #include / *为了使用printf等* / int main(){MYSQL * conn; / * MySQL的连接变量* / MYSQL_RES * res; / *将包含查询结果的变量* / MYSQL_ROW行; / *变量,将包含所查询的每个记录的字段* / char * server =“ localhost”; / *服务器地址127.0.0.1,localhost或ip地址* / char * user =“ root”; / *用户查询数据库* / char * password =“ root”; / *有关用户的密码* / char * database =“ test”; // *要查询的数据库名称* / conn = mysql_init(NULL); / *初始化以使连接为空* // *连接到数据库* / if(!mysql_real_connect(conn,服务器,用户,密码,数据库,0,NULL,0)){/ *定义先前设置的连接参数* / fprintf(stderr,“%s \ n”,mysql_error(conn)); / *如果有错误,请定义哪个错误* /退出(1); } / *发送SQL查询* / if(mysql_query(conn,“从数据中选择*”)){/ *查询的定义和连接的源* / fprintf(stderr,“%s \ n”,mysql_error( conn)); 出口(1); } res = mysql_use_result(conn);
	的printf(“ ID \ tName \ t \ age \ n”); while((row = mysql_fetch_row(res))!= NULL)/ *循环遍历变量res并获取所有要使用的记录* /
		的printf(“%s \ t%s \ t%s \ n”,第[0]行,第[1]行,第[2]行); / *行变量成为表中字段数的数组* / / *释放res变量并关闭连接* / mysql_free_result(res); mysql_close(conn); }

我们编译:

gcc -o查询$(mysql_config --cflags)Query.c $(mysql_config -libs)

验证

我们执行:

./查询

数据来源: Hugo4295的博客


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   rat月

    很好,保存在我的控制台脚本和教程库中! 为您的伴侣+1 ...

  2.   罗德里戈

    您好,祝贺您在网络上解决此问题的一切,您最接近该解决方案。 只是有点疑问,我为什么不获得可执行文件?

    在发生冲突时,它不会标记任何错误,但不会生成./ser4

  3.   安德烈洛

    任何想法如何在Fedora中做到吗?

  4.   胜利者德拉奥

    我不会不同意共享信息,但是如果没有放置版权,因为此示例是我自2011年以来制作的,这是原始来源的地址

    http://hugo4295.blogspot.mx/search?q=MYSQL

    1.    拉夫

      Victor没问题,但是如果您注意到我不是从您的网站上获取该文章,而是从另一个不幸的地方,他们没有提供源。 但是,现在我编辑文章..😉

  5.   阿方索·奥维迪奥·洛佩斯士气

    优秀的分享知识,极大的自由

  6.   丹妮拉·费尔南德斯(DANIELA FERNANDEZ)

    以及如何进行插入?