資源簡介
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
評論
共有 條評論