📄 db_mysql.c
字号:
/* db_mysql.c - database for mysql *//* Copyright(C) eyBuild Group, 2005, 2006. All Rights Reserved. *//* http://www.eybuild.com *//*modification history01a, 2005-04-03, newzy writen*//*DESCRIPTIONthis module is for suport mysql.Thanks for xxt help. ALSO SEE:db.c db.h*/#include <stdio.h>#include <string.h>#include <windows.h>#include <mysql.h>#include <undef.h>#include "db.h"#include <ebdef.h>/* database info */typedef struct { char * dbname; char * table_name; MYSQL * mydata; MYSQL_RES * records;} DB_INFO;/* open data base */void * open_db(char * mode){ DB_INFO * db_fp = NULL; db_fp = (DB_INFO *)malloc(sizeof(DB_INFO)); memset(db_fp, 0, sizeof(DB_INFO)); if ( ! (db_fp->mydata = mysql_init(NULL) )) return NULL; db_fp->dbname = "example"; db_fp->table_name = "viewmsg"; if (!mysql_real_connect(db_fp->mydata, NULL, "root", "xxt", db_fp->dbname, MYSQL_PORT, NULL, 0 )) return NULL; return db_fp;}/* close data base */int close_db(void * fp){ DB_INFO * db_fp = (DB_INFO *)fp; if (NULL == fp) return ERROR; if (db_fp->records) mysql_free_result(db_fp->records); if (db_fp->mydata) mysql_close(db_fp->mydata); free (db_fp); return OK; }/* read record from base */int db_read_next(void * fp, RECORD * rcd){ DB_INFO * db_fp = (DB_INFO *)fp; MYSQL_ROW row; /* get records from server */ if (NULL==db_fp) return ERROR; if (NULL==db_fp->records) { char strsql[256] = ""; sprintf (strsql, "select * from %s", db_fp->table_name); if (mysql_query(db_fp->mydata, strsql) ) { close_db(db_fp); return ERROR; } db_fp->records = mysql_store_result(db_fp->mydata); } /* read one record */ row = mysql_fetch_row(db_fp->records); if (NULL == row) /* end of records */ return 0; strcpy(rcd->name, row[1]); strcpy(rcd->sex, row[2]); strcpy(rcd->mail, row[3]); strcpy(rcd->now, row[4]); strcpy(rcd->msg, row[5]); rcd->msg_len = strlen(rcd->msg); return sizeof(RECORD);}/* insert record to data base */int db_insert(void * fp, RECORD * rcd){ DB_INFO * db_fp = (DB_INFO *)fp; char strsql[sizeof(RECORD)] = ""; /* get records from server */ if (NULL==db_fp || NULL==db_fp->mydata) return ERROR; sprintf(strsql, "insert into %s (name,sex,email,date,content) " "values('%s', '%s', '%s', '%s', '%s')", db_fp->table_name, rcd->name, rcd->sex, rcd->mail, rcd->now, rcd->msg ); if (mysql_query(db_fp->mydata, strsql) ) { close_db(db_fp); return ERROR; } return sizeof(RECORD);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -