一个连接mysql的c程序(c语言连接mysql数据库代码)

本文目录一览:

一个连接mysql的C程序,在debug版本可以顺利连接,在release提示server gone away,求解!重赏!

解决MySQL server has gone away

1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。最常见的就是采集或者新旧数据转化。

解决方案:

在my.cnf文件中添加或者修改以下两个变量:

wait_timeout=2880000

interactive_timeout = 2880000关于两个变量的具体说明可以google或者看官方手册。如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如:

sql = “set interactive_timeout=24*3600”;

mysql_real_query(…)

2、执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理

解决方案:

在my.cnf文件中添加或者修改以下变量:

max_allowed_packet = 10M(也可以设置自己需要的大小)

max_allowed_packet参数的作用是,用来控制其通信缓冲区的最大长度。

c语言怎么连接mysql数据库 代码

//vc工具中添加E:\WAMP\BIN\MYSQL\MYSQL5.5.8\LIB 路径

//在工程设置-》链接》库模块中添加 libmysql.lib

#include stdio.h

#include time.h

#include string.h

#include winsock.h

#include “E:\wamp\bin\mysql\mysql5.5.8\include\mysql.h”

void main(){

MYSQL *conn;

MYSQL_RES *res;

MYSQL_ROW row;

char *server =”localhost”;

char *user =”root”;

char *password=””;

char *database=”test”;

char sql[1024]=”select * from chinaren”;

conn=mysql_init(NULL);

if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0)){

fprintf(stderr,”%s\n”,mysql_error(conn));

exit(1);

}

if(mysql_query(conn,sql)){

fprintf(stderr,”%s\n”,mysql_error(conn));

exit(1);

}

res=mysql_use_result(conn);

while((row = mysql_fetch_row(res))!=NULL){

printf(“%s\n”,row[2]);

}

mysql_free_result(res);

mysql_close(conn);

}

===============================

#if defined(_WIN32) || defined(_WIN64) //为了支持windows平台上的编译

#include windows.h

#endif

#include stdio.h

#include stdlib.h

#include “mysql.h”

//定义数据库操作的宏,也可以不定义留着后面直接写进代码

#define SELECT_QUERY “show tables;”

int main(int argc, char **argv) //char **argv 相当于 char *argv[]

{

MYSQL mysql,*handle; //定义数据库连接的句柄,它被用于几乎所有的MySQL函数

MYSQL_RES *result; //查询结果集,结构类型

MYSQL_FIELD *field ; //包含字段信息的结构

MYSQL_ROW row ; //存放一行查询结果的字符串数组

char querysql[160]; //存放查询sql语句字符串

//初始化

mysql_init(mysql);

//连接数据库

if (!(handle = mysql_real_connect(mysql,”localhost”,”user”,”pwd”,”dbname”,0,NULL,0))) {

fprintf(stderr,”Couldn’t connect to engine!\n%s\n\n”,mysql_error(mysql));

}

sprintf(querysql,SELECT_QUERY,atoi(argv[1]));

//查询数据库

if(mysql_query(handle,querysql)) {

fprintf(stderr,”Query failed (%s)\n”,mysql_error(handle));

}

//存储结果集

if (!(result=mysql_store_result(handle))) {

fprintf(stderr,”Couldn’t get result from %s\n”, mysql_error(handle));

}

printf(“number of fields returned: %d\n”,mysql_num_fields(result));

//读取结果集的内容

while (row = mysql_fetch_row(result)) {

printf(“table: %s\n”,(((row[0]==NULL)(!strlen(row[0]))) ? “NULL” : row[0]) ) ;

}

//释放结果集

mysql_free_result(result);

//关闭数据库连接

mysql_close(handle);

system(“PAUSE”);

//为了兼容大部分的编译器加入此行

return 0;

}

c语言怎么把链表数据写进mysql

方法如下:

1.头文件:

#include

#include

#include//这个是必需要包含的,下面对mysql的所有操作函数,都出自这里

2.定义一个MYSQL变量:

MYSQLmysql;

这里MYSQL是一个用于连接MySql数据库的变量。

在后面对mysql数据库的操作中,我们就用这个MYSQL变量作为句柄的。

3.定义数据库参数:

charhost[32]=”localhost”;

charuser[32]=”username”;

charpasswd[32]=”pwd”;

chardbname[32]=”testdb”;

4.数据库操作

1).初始化数据库:

mysql_init(mysql);

2).连接数据库:

mysql_real_connect(mysql,host,user,passwd,dbname,0,NULL,0);

我们在操作时,可以对以上的函数进行if测试,如果初始化或者连接出错,作出相应提示,以便调试。

5.对数据库的操作:

Mysql_query(mysql,“select*fromtestdbwherecondition”);

我们在实际操作中,为了更方便的使用程序中的某些变量,我们将会用到一个函数:

intsprintf(char*str,constchar*format,?);

这个函数用来格式化我们的字符串,然后将变量按照给你的格式,赋给第一个参数。

我们使用这个方法方法可以很方便的使用我们的变量来对数据库进行操作。例如我们将要进行数据库的查询操作,我们就可以这样使用:

sprintf(sql,”select*fromtestdbwhereusername=‘%s’”,u_name);

然后使用mysql_query(mysql,sql)进行查询。

MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。

如何用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身份验证,第二、三参数可以是

mysql与c语言连接,代码求解释。

if (!mysql_real_connect(mysql,”localhost”, “root”, “”, “drug management”, 3306, NULL, 0)) //判断数据库连接是否成功

 if(t) //t是mysql_real_query的返值,使用if来判断sql语句执行是否成功。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-27 12:57
下一篇 2024-12-27 12:58

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python基础代码用法介绍

    本文将从多个方面对Python基础代码进行解析和详细阐述,力求让读者深刻理解Python基础代码。通过本文的学习,相信大家对Python的学习和应用会更加轻松和高效。 一、变量和数…

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

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

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

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

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

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

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

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

    编程 2025-04-29

发表回复

登录后才能评论