`
haoningabc
  • 浏览: 1482904 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

c的调用mysql

    博客分类:
  • sql
阅读更多
参考:
http://www.erickcantwell.com/2011/08/mysql-prepared-statements-in-c/

[root@li408-34 mysql]# cat a.c 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <mysql/mysql.h>

#define STRING_SIZE 256

int main()
{

  MYSQL *mysql;
  MYSQL_STMT *stmt;
  MYSQL_BIND param[1], result[1];
  char *sql;

  mysql = mysql_init(NULL);
  
  /* Here we make the connection to MySQL */
  if (mysql_real_connect(mysql, "localhost", "root", "haoning", "test", 0, NULL, 0) == NULL) {
    fprintf(stderr, "No connection could be made to the database\n");
    exit(EXIT_FAILURE);
  }

  sql = "SELECT `name` FROM `mytest` WHERE `name` = ?";

  int           param_count;
  short         small_data;
  int           int_data;
  char          str_data[STRING_SIZE];
  char          result_data[STRING_SIZE];
  unsigned long str_length;
  unsigned long data_length;
  my_bool       is_null;


  /* Initialize our statement */
  stmt = mysql_stmt_init(mysql);
  if (!stmt) {
    fprintf(stderr, " mysql_stmt_init(), out of memory\n");
    exit(EXIT_FAILURE);
  }

  if (mysql_stmt_prepare(stmt, sql, strlen(sql))) {
    fprintf(stderr, " mysql_stmt_prepare(), INSERT failed\n");
    fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
    exit(EXIT_FAILURE);
  }

  /* Zero out both the param and result data structures */
  memset(param, 0, sizeof(param));
  memset(result, 0, sizeof(result));

  /* STRING PARAM */
  param[0].buffer_type = MYSQL_TYPE_STRING;
  param[0].buffer = (char *)str_data;
  param[0].buffer_length = STRING_SIZE;
  param[0].is_null = 0;
  param[0].length = &str_length;

  result[0].buffer_type= MYSQL_TYPE_VAR_STRING;
  result[0].buffer = result_data;
  result[0].buffer_length = STRING_SIZE;
  result[0].is_null = 0;
  result[0].length = &data_length;

  /* Bind the parameters buffer */
  if (mysql_stmt_bind_param(stmt, param)) {
    fprintf(stderr, " mysql_stmt_bind_param() failed\n");
    fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
    exit(EXIT_FAILURE);
  }

  /* Bind the results buffer */
  if (mysql_stmt_bind_result(stmt, result) != 0) {
    fprintf(stderr, " mysql_stmt_bind_result() failed\n");
    fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
    exit(EXIT_FAILURE);
  }

  /* Specify the parameter that we send to the query */
  strncpy(str_data, "haha1", STRING_SIZE);
  str_length= strlen(str_data);

  /* Execute the statement */
  if (mysql_stmt_execute(stmt)) {
    fprintf(stderr, " mysql_stmt_execute(), failed\n");
    fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
    exit(EXIT_FAILURE);
  }

  /* Print our results */
  if(mysql_stmt_fetch (stmt) == 0) {
    printf("%s\n", result_data);
  } else {
    printf("No results found!\n");
  }

  /* Close the statement */
  if (mysql_stmt_close(stmt)) {
    fprintf(stderr, " failed while closing the statement\n");
    fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
    exit(EXIT_FAILURE);
  }

 exit(EXIT_SUCCESS);
}


[root@li408-34 mysql]# cat make.sh 
#!/bin/sh
#gcc -Wall  -L /usr/lib/mysql/ -l mysqlclient mysql_query.c -o mysql_query.o -g
gcc -Wall  -L /usr/lib/mysql/ -l mysqlclient a.c -o mysql_query.o -g
分享到:
评论

相关推荐

    C语言调用mysql快速教程(精华篇).doc

    【C语言调用MySQL快速教程】是针对C程序员的一个实用指南,旨在教授如何高效地在C程序中连接、操作MySQL数据库。本教程分为几个关键部分,包括建立数据库连接、数据插入、更新和删除,以及查询结果的处理。 首先,...

    C语言调用mysql快速教程(精华篇)

    ### C语言调用MySQL快速教程知识点精析 #### 核心知识点一:C语言与MySQL交互基础 在《C语言调用mysql快速教程(精华篇)》中,文章首先介绍了如何在MySQL中创建数据库、表,并添加数据。这一步骤为后续C语言与MySQL...

    用C调用mysql数据库的存储过程

    下面将详细讲解如何用C来调用MySQL数据库的存储过程。 首先,你需要安装MySQL的C接口库——libmysqlclient,这是MySQL提供的一种API,允许C程序直接与MySQL服务器通信。在Linux环境下,可以使用包管理器(如apt-get...

    移动智能终端开发--C调用MySQL接口.pptx

    总的来说,移动智能终端开发中,C语言调用MySQL接口是实现本地与服务器数据交换的一种方式。通过理解并掌握上述步骤,开发者可以在C程序中灵活地执行SQL命令,实现数据的读写和管理,为移动应用提供数据存储功能。

    c API 调用mysql存储过程完成增删改查

    在本例中,我们关注的是如何使用C API来调用MySQL数据库中的存储过程,以实现对数据的增、删、改、查(CRUD)操作。MySQL是一个广泛使用的开源关系型数据库管理系统,它提供了丰富的API供开发者使用。 首先,要使用...

    C操作mysql demo

    本文介绍了如何使用C语言调用MySQL API来实现基本的数据查询操作。通过以上步骤,你可以学习到如何连接MySQL数据库、执行SQL查询以及处理查询结果。此外,还展示了如何设置字符集、处理错误以及释放资源。这对于初学...

    简单的C调用数据库查询表信息

    #### 一、C语言调用MySQL数据库 在本示例中,我们通过一个简短的C语言程序实现了对MySQL数据库的连接及查询操作。该程序展示了如何使用MySQL C API(应用程序接口)来实现这一功能。 #### 二、必要的头文件包含 1...

    用C语言连接mysql

    ### 使用C语言在Windows环境下连接MySQL数据库 #### 知识点概述 本文旨在详细介绍如何在Windows环境下使用C语言实现与MySQL数据库的连接。这涉及到编译环境的搭建、必要的库文件配置以及具体的代码实现等几个关键...

    使用C实现对Mysql的存储调用

    这个简单的例子展示了如何使用C语言调用MySQL存储过程执行加法操作。实际上,存储过程可以执行更复杂的任务,如事务处理、多表操作和自定义业务逻辑。在实际项目中,理解如何使用C与MySQL交互对于开发高效、安全的...

    c语言操作mysql学习资料

    操作数据库完毕后,为了释放系统资源,应当调用mysql_close函数关闭数据库连接。这一操作有助于保持系统的稳定性和效率。 在实际操作过程中,错误处理是不可忽视的环节。比如,在连接数据库失败时,需要进行适当的...

    mysql—capi文档

    MySQL-CAPI文档主要介绍了如何使用C语言来与MySQL数据库进行交互,这是一项基础且重要的技能,特别是对于那些需要在C程序中嵌入数据库操作的开发者来说。MySQL的C API(应用程序编程接口)提供了一系列的函数,允许...

    c语言连接mysql数据库

    (文件中main函数中两个printf函数的输出为测试结果,调用连接函数前为NULL,调用连接函数后为一个地址,mysqlConnect函数中第一个参数为数据库所在ip,第二个和第三个参数是c编译所在环境的用户名和密码,第四个参数...

    C API调用MySQL.rar

    C API调用MySQL,英文PDF文档 This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property ...

    linux下C语言连接mysql数据库

    在这段代码中,`main()`函数初始化了MySQL连接,然后调用`create()`、`insert()`和`output()`函数。`create()`函数用于创建一个名为`tl`的表,包含三个字段:ID(整型)、name(字符型,长度5)和birthday(日期)。...

    一种基于C语言访问MySQL数据库的研究.pdf

    首先,要使用C语言访问MySQL,你需要了解MySQL的C API,这是MySQL提供的一组函数,允许程序员在C程序中执行SQL语句、管理连接、处理结果集等。主要的头文件是`mysql.h`,包含所有必要的声明。你需要在你的项目中包含...

    mysql-vs.zip_VC++ MYSQL_VC++调用mysql_mysql c++_mysql vc_visual c

    本文将详细探讨如何在VS或VC++环境中使用C++调用MySQL数据库。 首先,我们需要了解C++与MySQL交互的基础。MySQL提供了一个名为`libmysqlclient`的库,它包含了C接口,允许C++代码直接与MySQL服务器通信。在VS或VC++...

    c语言操作mysql.pdf

    在调用mysql_real_connect之前,必须先初始化一个MYSQL对象。mysql_real_connect的参数包括:MYSQL对象指针、服务器地址、用户名、密码、要操作的数据库名、端口号、UNIX socket路径以及连接标志位。在文档提供的...

    C语言操作mysql'类(含使用说明和实例程序)

    在IT领域,C语言是一种基础且强大的编程语言,而MySQL是一种广泛应用的关系型数据库管理系统。将两者结合,可以创建高效的数据处理应用。本压缩包提供的" C语言操作mysql'类 "是为了简化C语言与MySQL数据库之间的...

    使用C语言控制台结合mysql数据库实现简单的图书管理系统.doc

    而`mysql.h`是MySQL C API的头文件,包含了与MySQL数据库交互所需的所有函数和结构体。 在`userfunction`函数中,用户被欢迎登录并可以选择不同的操作,例如借阅、归还图书或者查询图书。这些功能的实现依赖于MySQL...

    Windows下C/C++调用mysql代码

    本文将深入探讨如何在Windows上实现C/C++调用MySQL的详细步骤,以及涉及的关键知识点。 首先,我们需要安装必要的库和开发工具。MySQL提供了一个名为`MySQL Connector/C`的库,它允许C和C++程序通过API与MySQL...

Global site tag (gtag.js) - Google Analytics