c语言写mysql客户端,c语言调用mysql数据库

本文目录一览:

用C语言如何对MySQL数据库进行操作

有时为了性能,我们会直接用C语言来开发相关的模块,尤其在我们的web应用中,虽然PHP、JSP等脚本均提供了MySQL的接口,但是显然直接使用C语言具有更好的安全性和性能,Michael以前用PHP开发的多个项目中就使用了C语言编写的这类接口,然后再编译到php里面,供php脚本直接使用,这方面的话题就不多说了,下面主要说一下在Linux下如何用C语言连接MySQL数据库,并且读取里面的数据返回,同时如何进行编译。if defined(_WIN32) || defined(_WIN64)为了支持windows平台上的编译#includewindows.h#endif#includestdio.h#includestdlib.h#includemysql.h我的机器上该文件在/usr/local/include/mysql下定义MySQL数据库操作的宏,也可以不定义留着后面直接写进代码defineSELECT_QUERYselectusernamefromtbb_userwhereuserid=%dintmain(intargc,char**argv)char**argv相当于char*argv[]{MYSQL mysql,*sock;定义数据库连接的句柄,它被用于几乎所有的MySQL函数MYSQL_RES *res;查询结果集,结构类型MYSQL_FIELD *fd ;包含字段信息的结构MYSQL_ROW row ;存放一行查询结果的字符串数组char qbuf[160];存放查询sql语句字符串if(argc!=2){//检查输入参数fprintf(stderr,usage:mysql_selectuserid\n\n);exit(1);}mysql_init(mysql);if(!(sock=mysql_real_connect(mysql,localhost,dbuser,dbpwd,9tmd_bbs_utf8,0,NULL,0))){fprintf(stderr,Couldn’tconnecttoengine!\n%s\n\n,mysql_error(mysql));perror();exit(1);}sprintf(qbuf,SELECT_QUERY,atoi(argv[1]));if(mysql_query(sock,qbuf)){fprintf(stderr,Queryfailed(%s)\n,mysql_error(sock));exit(1);}if(!(res=mysql_store_result(sock))){fprintf(stderr,Couldn’tgetresultfrom%s\n,mysql_error(sock));exit(1);}printf(numberoffieldsreturned:%d\n,mysql_num_fields(res));while(row=mysql_fetch_row(res)){printf(Theruserid#%d’susernameis:%s\n,atoi(argv[1]),(((row[0]==NULL)(!strlen(row[0])))?NULL:row[0]));puts(queryok!\n);}mysql_free_result(res);mysql_close(sock);exit(0);return0;为了兼容大部分的编译器加入此行}编译的时候,使用下面的命令gcc -o mysql_select ./mysql_select.c -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient (-lz) (-lm) 后面两个选项可选,根据您的环境情况运行的时候,执行下面的命令./mysql_select 1将返回如下结果:numberoffieldsreturned:1Theruserid#1’susernameis:Michaelqueryok!上面的代码我想大部分都能看明白,不明白的可以参考一下MySQL提供的有关C语言API部分文档源码天空,各个函数都有详细说明,有时间我整理一份常用的API说明出来。

如何用C语言连接MYSQL数据库

1、配置ODBC数据源。

2、使用SQL函数进行连接。

对于1、配置数据源,配置完以后就可以编程操作数据库了。

对于2、使用SQL函数进行连接,参考代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

#includewindows.h

#includesql.h

#includesqlext.h

void main()

{

HENV henv; //环境句柄

HDBC hdbc; //数据源句柄

HSTMT hstmt; //执行语句句柄

unsigned char datasource[]=”数据源名称”; //即源中设置的源名称

unsigned char user[]= “用户名”; //数据库的帐户名

unsigned char pwd[]= “密码”; //数据库的密码

unsigned char search[]=”select xm from stu where xh=0″;

SQLRETURN retcode; //记录各SQL函数的返回情况

// 分配环境句柄

retcode= SQLAllocEnv(henv); // 等介于 SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL

, henv);

// 设置ODBC环境版本号为3.0

retcode= SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);

// 分配连接句柄

retcode= SQLAllocConnect(henv,hdbc); // 等介于 SQLAllocHandle(SQL_HANDLE_DBC, henv, hdbc);

//设置连接属性,登录超时为*rgbValue秒(可以没有)

// SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)(rgbValue), 0);

//直接连接数据源

// 如果是windows身份验证,第二、三参数可以是

求c语言操作mysql数据库实例

不知你用的是什么代码,不过据我实验,以下代码是可用的 【来自 】

#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;  

}

连接mysql数据库需要以下步骤:

安装mysql开发包, linux下是mysql安装的时候全选就行了, linux 下直接安装mysql-devel

新建工程,占贴代码,注意修改实际的用户名、密码 …

设置包含目录, 在windows下, 找到你的mysql安装位置,找到include文件夹, 设置ide增加该文件夹到包含目录 【可能是 C:\Program Files\MySQL\MySQL Server 5.0\include】

设置连接目录, 同设置包含目录一样 找到mysql的lib目录,设置ide 【可能是 C:\Program Files\MySQL\MySQL Server 5.0\lib\opt 】

设置连接选项, 需要设置ide连接选项,增加 -lmysql

编译连接运行

请问mysql和Oracle分别用什么语言写的啊

Oracle数据库内核是用C编写的。但是,大部分代码在数据库内部执行,并且使用PL / SQL和Java(使用嵌入在内核中的JVM)进行开发。外围工具(SQL Developer,网格控件)主要使用Java。

MySQL用C和C ++编写。它的SQL解析器是用yacc编写的,但它使用的是自制的词法分析器。MySQL可在许多系统平台上工作。

扩展资料:

Oracle的文件结构:

数据库的物理存储结构是由一些多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件、警告文件等。

1、控制文件:存储实例、数据文件及日志文件等信息的二进制文件。alter system set control_files=‘路径’。V$CONTROLFILE。

2、数据文件:存储数据,以.dbf做后缀。一句话:一个表空间对多个数据文件,一个数据文件只对一个表空间。dba_data_files/v$datafile。

3、日志文件:即Redo Log Files和Archivelog Files。记录数据库修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。

4、参数文件:记录基本参数。spfile和pfile。

5、警告文件:show parameter background_dump_dest—使用共享服务器连接。

6、跟踪文件:show parameter user_dump_dest—使用专用服务器连接 。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/310042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2025-01-04 19:32
下一篇 2025-01-04 19:32

相关推荐

  • 如何修改mysql的端口号

    本文将介绍如何修改mysql的端口号,方便开发者根据实际需求配置对应端口号。 一、为什么需要修改mysql端口号 默认情况下,mysql使用的端口号是3306。在某些情况下,我们需…

    编程 2025-04-29
  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • openeuler安装数据库方案

    本文将介绍在openeuler操作系统中安装数据库的方案,并提供代码示例。 一、安装MariaDB 下面介绍如何在openeuler中安装MariaDB。 1、更新软件源 sudo…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • Python操作MySQL

    本文将从以下几个方面对Python操作MySQL进行详细阐述: 一、连接MySQL数据库 在使用Python操作MySQL之前,我们需要先连接MySQL数据库。在Python中,我…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29
  • 数据库第三范式会有删除插入异常

    如果没有正确设计数据库,第三范式可能导致删除和插入异常。以下是详细解释: 一、什么是第三范式和范式理论? 范式理论是关系数据库中的一个规范化过程。第三范式是范式理论中的一种常见形式…

    编程 2025-04-29

发表回复

登录后才能评论