坦克大战网站开发课程设计报告,系统界面设计图,与建设部网站,iis建设的网站无法访问前提条件#xff1a;Ubuntu 22.04.4 LTS、MSQL 8数据库
并且已经安装MySQL 8 开发库。如果没有安装#xff0c;可以查考#xff1a;C 语言连接MySQL数据库
项目要求:
1、完成MySQL数据库增删改查通用功能封装
2、编辑makefile 文件实现项目动态更新和快速编译
项目结构…前提条件Ubuntu 22.04.4 LTS、MSQL 8数据库
并且已经安装MySQL 8 开发库。如果没有安装可以查考C 语言连接MySQL数据库
项目要求:
1、完成MySQL数据库增删改查通用功能封装
2、编辑makefile 文件实现项目动态更新和快速编译
项目结构:
common_mysql.h 通用数据库基础功能
#include mysql/mysql.h// 数据库连接
MYSQL* connectDB(const char *ip, const char *username, const char *password, const char *databasenName, unsigned int port);// SQL语句执行
int executeQuery(MYSQL* conn, const char* query);// SQL 语句执行并返回查询结果
void printResults(MYSQL* conn, const char* query);// 关闭数据库连接
int closeConnectDB(MYSQL* conn);
common_mmysql.c 通用数据库基础功能实现
#include common_mysql.h
#include stdio.h// 数据库连接
MYSQL* connectDB(const char *ip, const char *username, const char *password, const char *databasenName, unsigned int port){MYSQL *conn mysql_init(NULL);if (conn NULL) {fprintf(stderr, mysql_init() 初始化失败\n);return NULL;}if (mysql_real_connect(conn, ip, username, password, databasenName, port, NULL, 0) NULL) {fprintf(stderr, mysql_real_connect() failed: %s\n, mysql_error(conn));mysql_close(conn);return NULL;}return conn;
}// SQL 语句执行 0 执行成功, 1 执行失败
int executeQuery(MYSQL* conn, const char* query){if (mysql_query(conn, query) ! 0) {fprintf(stderr, mysql_query() 失败: %s\n, mysql_error(conn));return 1;}return 0;
}
// SQL 语句执行并返回执行结果
void printResults(MYSQL* conn, const char* query){if (mysql_query(conn, query) ! 0) {fprintf(stderr, mysql_query() 失败: %s\n, mysql_error(conn));return;}MYSQL_RES *result mysql_store_result(conn);if (result ! NULL) {MYSQL_ROW row;while ((row mysql_fetch_row(result)) ! NULL) {for (int i 0; i mysql_num_fields(result); i) {printf(%s , row[i] ? row[i] : NULL);}printf(\n);}mysql_free_result(result);}
}int closeConnectDB(MYSQL* conn){mysql_close(conn);return 0;
}
database_sys.c: 基于数据库通用功能应用
#includestdio.h
#include common_mysql.h// 常量定义
#define IP 192.168.60.94
#define USERNAME root
#define PASSWORD 123456
#define DATABASENAME base
#define PORT 3306int main(void){// 数据库连接MYSQL* connect connectDB(IP, USERNAME, PASSWORD, DATABASENAME, PORT);// 判断数据连接是否为空if(connect NULL){return 1;}// 执行SQL 语句printResults(connect, select * from base_user);// 关闭数据库连接closeConnectDB(connect);return 0;
}
MakeFile 自动化编译文件
SOURCES $(wildcard *.c)
OBJS $(patsubst %.c,%.o,$(SOURCES))
CC gcc
CFLAGS -g
TARGET MySQLDemo# 通过mysql_config 命令查看MySQL 库文件地址
LIB_PATH -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lzstd -lssl -lcrypto -lresolv -lm$(TARGET) : $(OBJS)$(CC) $(CFLAGS) -o $ $^ $(LIB_PATH)
$(OBJS): %.o :%.c$(CC) $(CFLAGS) -c $ -o $clean: rm -rf $(TARGET) $(OBJS)
Ubuntu 命令控制台查看MySQL 配置信息
wz2012LAPTOP-8R0KHL88:~$ mysql_config
Usage: /usr/bin/mysql_config [OPTIONS]
Compiler: GNU 11.4.0
Options:--cflags [-I/usr/include/mysql ]--cxxflags [-I/usr/include/mysql ]--include [-I/usr/include/mysql]--libs [-L/usr/lib/x86_64-linux-gnu -lmysqlclient -lzstd -lssl -lcrypto -lresolv -lm]--libs_r [-L/usr/lib/x86_64-linux-gnu -lmysqlclient -lzstd -lssl -lcrypto -lresolv -lm]--plugindir [/usr/lib/mysql/plugin]--socket [/var/run/mysqld/mysqld.sock]--port [0]--version [8.0.37]--variableVAR VAR is one of:pkgincludedir [/usr/include/mysql]pkglibdir [/usr/lib/x86_64-linux-gnu]plugindir [/usr/lib/mysql/plugin]
项目运行结果
wz2012LAPTOP-8R0KHL88:/mnt/e/ubuntu_code/数据库管理系统$ ./MySQLDemo
1 31 张三修该 广东省 深圳市 福田区 NULL
2 19 李四 湖南省 长沙市 开福区 NULL
至此收工。