• C语言连接MySQL数据库(课程设计总结)


    刚结束课程设计,也预示着假期立即就要到来了。本次课程设计并不算难,无非就是让做一个XXX系统,实现用户的注冊、登录、菜单管理、超级用户等等一些功能,到如今为止已经做过好几个了,所以基本流程都熟悉了!

    我觉的最值得总结的地方就是:C语言与数据库连接。这块内容。由于之前都是用文件实现的。

    ★平台

    这次课程设计主要用到:

    ● VC ++ 6.0

    ● mysql-5.0.18-win32

    ● Navicat for MySQL(MySQL 图形化的工具)

    ★配置

    在写代码之前首先要让编译器知道MySQL数据库的一些API,这就须要在VC上配置数据库的一些路径。从网上找了一份比較不错的參考资料

    ★数据库的API函数

    ● mysql_init()

    原型:MYSQL *mysql_init(MYSQL *mysql)

    作用:主要用来初始化MYSQL对象

    mysql_real_connect( )

    原型:MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)


    作用:用来连接一个MySQL数据库server,MySQL的结构体地址是&mysql,host主机名或地址是“localhost”,username是“root”,password是“root”,数据库是“test”,port是“3306”。

    ●mysql_store_result()

    原型:MYSQL_RES *mysql_store_result(MYSQL *mysql)

    作用:检索数据。获取数据库中的结果集

    mysql_num_rows()

    原型:mysql_num_rows(MYSQL_RES *result) 

    作用:取得结果集中的记录数。

    普通情况下mysql_num_rows()是在mysql_store_result()之后使用的,mysql_num_rows()的參数正是mysql_store_result()的返回值。


    ●mysql_fetch_row()

    原型:MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

    作用:取得结果集中的一条记录,并且每运行一次,就会取下一行的记录。同理,它的參数与mysql_num_rows()同样

    ★C数组传递给SQL语句

    在写到注冊功能时遇到一个问题。研究了好久。问题是这种:在C语言中,我所输入的用户信息(包含ID号、姓名、password)都保存在数组里面。而在数据库的函数里面仅仅有像这种形式的:

    mytable是数据库中的表名。括号中面的是表中的字段。在values后的是要插入的数据。可是用户的注冊信息是保存在字符数组里面的,我如何将字符数组里面的数据变成符合SQL语句的数据呢?

    找了非常多的资料,最终让我找到了一个函数:sprintf()

    ● 它的使用方法:

    首先要申请一个字符数组,如果为sql_insert[50],它的作用是以后向此数组中写入数据。即将用户注冊的信息先写到这个数组里面。

    然后:

    这样就能够将用户注冊信息插入到数据库中。

    当中sql_insert就是上面所说的数组。后面就是SQL语句。

    查询信息的样例:





  • 相关阅读:
    Arduino语法-变量和常量
    Arduino-函数库和程序架构介绍
    第十章浮力题汇总
    pyqt5-按钮基类-QAbstractButton
    在Windows上安装Arduino-IDE
    Arduino-接口图
    python-文件及文件夹操作
    Qt WebRTC demo
    多线程使用信号量sem_init,sem_wait,sem_post
    华为公司内部培训资料_介绍RTSP的消息、信令等
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/5061391.html
Copyright © 2020-2023  润新知