• 大小: 0.02M
    文件类型: .c
    金币: 2
    下载: 1 次
    发布日期: 2021-07-22
  • 语言: 数据库
  • 标签: 其他  

资源简介

mysqltest.c

资源截图

代码片段和文件信息

/********************************************************************
* 标题:C语言链接mysql数据库,实现可以增删改查的角色权限登录系统
* 作者:尹肖飞 联系方式: QQ 794401375
* 描述:本代码可在安装GCC编译环境和mysql集成环境下直接编译运行,根据不同使用者的mysql账户可修改代码前面的内容以成功连接mysql数据库
* 编译命令:gcc mysqltest.c -lmysqlclient -o mysqltest
********************************************************************/

#include 
#include 
#include 
#include 
#include “mysql/mysql.h“

MYSQL *g_conn;//mysql 链接
MYSQL_RES *g_res;//mysql 记录集
MYSQL_ROW g_row;//字符串数组,mysql 记录行

#define MAX_BUF_SIZE 1024 //缓冲区最大字节数
/*=================================================================*/
/**/const char *g_host_name = “localhost“;
/**/const char *g_user_name = “yinxiaofei“;
/**/const char *g_password = “yinxiaofei“;
/**/const char *g_db_name = “test“;
/**/const unsigned int g_db_port = 3306;
/*=================================================================*/
char sql[MAX_BUF_SIZE];
char Time[MAX_BUF_SIZE];

int iNum_rows = 0;//mysql语句执行结果返回行数赋初值
int flag = 0;//管理员权限开关
int i = 1;//系统运行开关

//登录使用的结构体
struct Login
{
char name[24];
char password[20];
}login;
//操作使用的结构体
struct Operation
{
char tables[24];
char name[24];
char passwd[20];
char role[24];
char remark[20];
}ope;
//打印错误信息
void print_mysql_error(const char *msg)
{
if(msg)
printf(“%s: %s\n“msgmysql_error(g_conn));
else
puts(mysql_error(g_conn));
}
//执行sql语句,成功返回0,失败返回-1
int executesql(const char * sql)
{
//
if(mysql_real_query(g_connsqlstrlen(sql)))
return -1;
return 0;
}
//初始化链接
int init_mysql()
{
//init the database connection
g_conn = mysql_init(NULL);
//connection the database
if(!mysql_real_connect(g_conng_host_nameg_user_nameg_passwordg_db_nameg_db_portNULL0))
return -1;//链接失败
//检查是否可以使用
if(executesql(“set names utf8“))
return -1;
return 0;//返回成功
}
//选择数据库,没有的时候创建
void create_database()
{
sprintf(sql“use project“);
if(executesql(sql) == -1)
{
puts(“create database“);
executesql(“create database project;“);
print_mysql_error(NULL);
puts(“choice database“);
executesql(“use project;“);
print_mysql_error(NULL);
puts(“!!!Initialize the success!!!“);
}
else
{
executesql(“use project;“);
print_mysql_error(NULL);
}
}
//查看表格完整性
void create_table()
{
//users表的检查与创建
sprintf(sql“show tables;“);
executesql(sql);
g_res = mysql_store_result(g_conn);
iNum_rows = mysql_num_rows(g_res);
if(iNum_rows == 0)
{
puts(“create users table“);
executesql(“create table users(id_ smallint unsigned primary key auto_incrementname_ varchar(24) not null uniquepassword_ char(20) not nullcreate_time_ datetime not nullcreator_id_ smallint unsignedremark_ varchar(200)foreign key(creator_id_) references users(id_));“);
puts(“create roles table“);
executesql(“create table roles(id_ smallint unsigned primary key auto_incrementname_ varchar(24) not null uniqueremark_ varchar(200));“);
puts(“c

评论

共有 条评论