欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-05-10 20:10:50
...
刚结束课程设计,也预示着假期马上就要到来了。本次课程设计并不算难,无非就是让做一个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)

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

作用:用来连接一个MySQL数据库服务器,MySQL的结构体地址是&mysql,host主机名或地址是“localhost”,用户名是“root”,密码是“root”,数据库是“test”,端口是“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()的返回值。

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

●mysql_fetch_row()

原型: MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

作用:取得结果集中的一条记录,而且每执行一次,就会取下一行的记录。同理,它的参数与 mysql_num_rows()相同

★C数组传递给SQL语句

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

C语言连接MySQL数据库(课程设计总结)_MySQL mytable是数据库中的表名,括号里面的是表中的字段,在values后的是要插入的数据,但是用户的注册信息是保存在字符数组里面的,我怎样将字符数组里面的数据变成符合SQL语句的数据呢?

找了很多的资料,终于让我找到了一个函数: sprintf()

● 它的用法:

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

然后:

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

这样就可以将用户注册信息插入到数据库中。其中sql_insert就是上面所说的数组,后面就是SQL语句。

查询信息的例子:

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