zoukankan      html  css  js  c++  java
  • 文献笔记(九)

    一、基本信息

    标题:基于C语言访问的MySQL 数据库

    时间:2018

    出版源:南昌市医学科学研究所

    领域分类:电子技术与软件工程

    二、研究背景

    问题定义:本文重点介绍了 MySQL 数据库的数据操作,并研究了在 C 语言中操作 MySQL 数据库的基本 API,包括 MySQL 库中表的基本定义和常见的数据库操作如增删改查、联合查询等。

    难点:能熟练掌握运用

    相关工作: C 语言 数据库 MySQL

    三、研究内容

    C 语言访问 MYSQL 数据库的相关函数

    MYSQL *mysql_init(MYSQL *mysql)
    初始化 MYSQL 实例
    Void mysql_close(MYSQL *mysql)
    关闭 MYSQL 实例,释放内存
    Int mysql_query(MYSQL *mysql,constchar *query)	对指定连接进行查询。成功返回 0,出错返回非 0 值
    MYSQL_RES *musql_store_ result(MYSQL *handle)	返回查询的结果
    MYSQL_ROW mysql_fetch_ row(MYSQL_RES *res)	返回第一行查询的结果
    

    C语言访问 MySQL 的程序实例

    #include <stdio.h> #include <stdlib.h> #include <mysql/mysql.h>
    // 定义数据库查询宏(此处根据参数
    userid 查询 teacher 表的 name year 属性)
    #define SELECT_QUERY "select name,year from teacher where userid = %d"
    //main 函数,C 语言执行的入口
    int main(int argc, char **argv) {
    // 定义使用的变量
    // 调用 mysql_init 方法,初始化连接实例mysql_init(&mysql);
    // 向数据库插入数据(insert 操作),如遇异常则返回
    res = mysql_query (&my_connection, "INSERT INT O teacher(name,year) VALUES('Ana', 1989)");
    if (res)
    fprintf (stderr, "Insert error %d: %s
    ", mysql_errno (&my_connection), mysql_ error(&my_connection));
    }
    // 修改数据(update 操作),如遇异常则
    返回
    res = mysql_query (&my_connection, "update teacher set year= 1999 where name
    ='Peter'");
    if (res)
    fprintf (stderr, "Update error %d: %s
    ", mysql_errno (&my_connection), mysql_ error(&my_connection));
    }
    sprintf(buf,SELECT_QUERY,atoi(argv[1]));
                       // 查询数据行(select 操作)
    if(mysql_query(handle,buf)) { fprintf(stderr,"Query failed (%s)
    ",mysql_
    error(handle)); exit(1);
    }
    // 缓存结果
    If (! (result=mysql_store_result(handle))) { fprintf(stderr,"Get result from %s failed
    ",
    mysql_error (handle)); exit(1);
    }
    printf("number of fields returned: 
    %d
    ",mysql_num_fields (result)); query ok !
    

    四、结论

    用 C 语言访问 MySQL 在实际 Web 应用中并不多见,但是有时候为了获取更高访问性能,会直接用 C 语言来开发相关的数据库访问模块,这样可以更好地利用服务器的资源, 并且使用 C 语言具有更好的安全性,所以用 C 语言访问 MySQL 数据库相比其他语言虽然在程序开发上成本高一些,但是具备更好的性能和安全性。

    参考文献

    [1] 吴垠 , 余瑾 , 郭磊等 .MySQL 数据库在嵌入式 Linux 平台上的移植和应用 [J]. 电子技术 ,2011,38(07):12-13.

    [2] 赵 洪 明 .MySQL 中访问数据库的程序 设 计 [J]. 黄石高等专科学校学报 ,2012,18(01):10-12.

    [3] 李达 . 基于知识库的高分辨率遥感影像分割系统的设计与实现 [D]. 太原 : 山西大学 ,2014.

  • 相关阅读:
    oracle中Blob和Clob类型的区别
    为什么要分库分表
    Enable file editing in Visual Studio's debug mode
    SQL Server Dead Lock Log
    Debug .NET Framework Source
    SQL Server text field里面有换行符的时候copy到excel数据会散乱
    诊断和修复Web测试记录器(Web Test Recorder)问题
    Can't load Microsoft.ReportViewer.ProcessingObjectModel.dll
    'telnet' is not recognized as an internal or external command
    Linq to XML
  • 原文地址:https://www.cnblogs.com/lunzhenlun/p/9970481.html
Copyright © 2011-2022 走看看