资源简介
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
相关资源
- SQL Server 绿色版,不需安装
- MySQL中文手册api帮助文档
- linux_mysql5.1.66x86_64.zip
-
purexm
l:引发数据库技术新一轮革命 -
DB2 xm
l 查询开发解析 -
Syba
se IQ“绿色数据库”构建绿 - 基于IBM System x3850 X5的业务智能解决方
- 黑龙江省电力数据备份方案
- 用NetBackup恢复Oracle数据库到异机
-
Symantec Databa
se Security产品手册 - 赛门铁克Backup Exec 12防护Microsoft SQL
- 认识NBU备份Oracle时Code 29错误的解答
- 通过Backup Exec实施Oracle来灾难恢复
- 通过Backup Exec实施Oracle灾难恢复
- 美国飞康软件公司iSCSI存储服务器解决
- Oracle中空间管理对系统性能的影响
- Oracle 10g数据库的安全性和身份管理
- Oracle非常好的入门、深入PPT
- Oracle产品助力青岛啤酒发展
- 博科联手Emulex发展HBA和光纤通道交换
- Sun/Oracle9i RAC方案在英国BACS公司的应用
- 上海广电液晶显示器ERP项目的实施
- 利用Oracle复制技术的灾备解决方案
- Oracle中的优化器如何进行评估优化
- 如何选择Oracle优化器使你事半功倍
- 深入浅出mysql全文
- 数据库技术与应用教案
- 三方法解决SQL Server与云端数据库连接
- InsideTSQL2008.sql
- 淘宝买的Compiere 3.3 汉化
评论
共有 条评论