亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? database.cpp

?? 一個C++寫的RSS解析器,需要libxml2.rpm支持
?? CPP
字號:
#include <stdio.h>#include <string.h>#include "utils.h"#include "database.h"#include "dbconn.h"#include <mysql/mysql.h>MYSQL mysql_conn; /* Connection handle */#define MAX_LENGTH      1024#define COLUMN_LEN	512#define EACH_SOURCE_NUM_MAX	10#define INSERT_SUPERLINK_WITH_TEXT "insert into t_superlink (\	title, link, source_id, language, class_id, issue_time, description) values(\	'%s',  '%s', %d,   	'%s',     %d,       '%s', 		 '%s')"#define INSERT_SUPERLINK_WITH_PICTURE "insert into t_superlink (\	title, link, source_id, language, class_id, issue_time, description, url, type) values(\	'%s',  '%s', %d,   	'%s',     %d,	 '%s', 	     '%s', 	  '%s',%d)"	#define INSERT_NEWS "insert into t_news (\	title, link, source_id, language, class_id, issue_time, description, weight) values(\	'%s',  '%s', %d,   	'%s',     %d,       '%s', 		 '%s',	  %d)"	#define SELECT_SUBJECT "select class_id from t_subject where code=%d and subcode=%d"#define SELECT_SOURCE "select source_id from t_source where class_id=%d and name='%s'"#define SELECT_NEWS "select count(*) from t_news where class_id=%d and source_id=%d"#define UPDATE_NEWS "update t_news set weight=weight+%d where class_id=%d and source_id=%d"//#define DELETE_NEWS "delete from t_news where weight>%d and class_id=%d and source_id=%d"#define DELETE_NEWS "delete from t_news where class_id=%d order by weight, issue_time desc"int get_Imgurl(char* data, char* url){	if(!data)		return 0;			char* pBegin = NULL;	char* pEnd = NULL;	char* pTemp = NULL;	pBegin = strstr(data, "&lt;img");	if(((pBegin = strstr(data, "&lt;img")) == NULL) && ((pBegin = strstr(data, "&lt;IMG")) == NULL) && \		((pBegin = strstr(data, "<img")) == NULL) && ((pBegin = strstr(data, "<IMG")) == NULL))		return 0;	pTemp = strstr(pBegin, "=&quot;");	if(pTemp != NULL)	{		pBegin = pTemp + strlen("=&quot;");		pEnd = strstr(pTemp, "&quot;");	}else 	{		pTemp = strstr(pBegin, "=\"");		if(pTemp != NULL)		{			pBegin = pTemp + strlen("=\"");			pEnd = strstr(pTemp + strlen("=\""), "\"");		}	}	if(!pBegin || !pEnd)		return 0;			memcpy(url, pBegin, pEnd - pBegin);		return 1;	}void db_fini() { 	mysql_close(&mysql_conn);}int db_init() {	int ret = -1;		if(&mysql_conn)		mysql_close(&mysql_conn);			if(mysql_init(&mysql_conn) != NULL)	{		if (mysql_real_connect(&mysql_conn, DB_HOST, DB_USER, 			DB_PASSWD, DB_NAME, MYSQL_PORT, DB_SOCKET, 0) != NULL)		{			ret = 0;		}else			DEBUG_SCREEN("Connection to database failed.\n");	}	else		DEBUG_SCREEN("Initialization failed.\n");	return ret;}/*執(zhí)行不返回數(shù)據(jù)字段的sql語句*/int excute_sql(char* sqlcmd){	int ret = -1;	unsigned long total = 0;		MYSQL_ROW cur;	MYSQL_RES *result = NULL; /* Result handle */	MYSQL_FIELD *fields = NULL;		if (mysql_query(&mysql_conn, sqlcmd) == 0)	{			result = mysql_store_result(&mysql_conn);		if(result != NULL)		{			total = mysql_num_rows(result);			ret = total;		}		}		return ret;}/*執(zhí)行返回一個且只為int的數(shù)據(jù)字段的sql語句返回值為查詢的唯一值*/int query_sql_int(char* selectsql){	int ret = -1;	unsigned long total = 0;		MYSQL_ROW cur;	MYSQL_RES *result = NULL; /* Result handle */	MYSQL_FIELD *fields = NULL;		if (mysql_query(&mysql_conn, selectsql) == 0)	{			result = mysql_store_result(&mysql_conn);		if(result != NULL)		{			total = mysql_num_rows(result);			mysql_field_seek(result, 0);			fields = mysql_fetch_fields(result);			mysql_data_seek(result, 0);//定位到數(shù)據(jù)集指定位置						while ((cur = mysql_fetch_row(result)))			{				ulong *lengths = mysql_fetch_lengths(result);				for (int i = 0; i < mysql_num_fields(result); i++)				{					if(lengths[i] != 0)					{						//printf("%s=%s\n", fields[i].name, cur[i]);						ret = atoi(cur[i]);					}				}						}				}		}		return ret;}int query_classid(int key, int subkey){	char selectsql[512];	sprintf(selectsql, SELECT_SUBJECT, key, subkey);	return query_sql_int(selectsql);}int query_sourceid(int class_id, char* name){	char selectsql[512];	sprintf(selectsql, SELECT_SOURCE, class_id, name);	return query_sql_int(selectsql);;}int set_superlink(struct Outline* outline, int class_id, int source_id, struct Channel* channel){	if(channel == NULL)		return 0;	struct Channel* pCurrent = channel;	struct ITEM* pItem = NULL;		int count = 0;	int ret = 0;	int isOk = 0;	char sql[MAX_LENGTH * 4];		while(pCurrent)	{		pItem = pCurrent->pItem;		while(pItem)		{			memset(sql, 0 , MAX_LENGTH * 4);			//如果rss文件中存在source字段,則使用該字段作為鏈接來源			if(outline->kind == 0)			{				isOk = 1;								if(pItem->description && strlen(pItem->description) > COLUMN_LEN)					memset(pItem->description + COLUMN_LEN, 0, strlen(pItem->description) - COLUMN_LEN);								sprintf(sql, INSERT_SUPERLINK_WITH_TEXT, pItem->title, pItem->link, source_id, pCurrent->language, class_id, pItem->pubdate, pItem->description?pItem->description:"");			}else if(outline->kind == 1)			{				isOk = 0;				char url[128] = {0};				ret = get_Imgurl(pItem->description, url);				if(ret > 0)				{					isOk = 1;													sprintf(sql, INSERT_SUPERLINK_WITH_PICTURE, pItem->title, pItem->link, source_id, pCurrent->language, class_id, pItem->pubdate, "", url, outline->kind);				}			}						if(isOk)				if((ret = mysql_query(&mysql_conn, sql)) == 0)				{					pItem->is_inserted = 1;					count++;				}			pItem = pItem->pNext;		}						pCurrent = pCurrent->pNext;		}		return count;}/*在插入前首先降低原有數(shù)據(jù)的重要性*/int update_weight(int weight_offset, int class_id, int source_id){	int ret = -1;	char updatesql[128];	sprintf(updatesql, UPDATE_NEWS, weight_offset, class_id, source_id);	ret = excute_sql(updatesql);		return ret;}/*每個欄目每個數(shù)據(jù)來源同時最多只存放指定數(shù)量的數(shù)據(jù),超出部分將被刪除*/int remove_over_news(int num_max, int class_id, int source_id){	int ret = -1;	char removesql[128];	sprintf(removesql, DELETE_NEWS, num_max, class_id, source_id);	ret = excute_sql(removesql);		return ret;}int set_news(int insert_count, struct Outline* outline, int class_id, int source_id, struct Channel* channel){	if(channel == NULL)		return 0;	/////////////////	//更新原有數(shù)據(jù)weight	int update_num = update_weight(insert_count, class_id, source_id);	/////////////////		struct Channel* pCurrent = channel;        	struct ITEM* pItem = NULL;		int count = 0;	int ret = 0;	int isOk = 0;	char sql[MAX_LENGTH * 4];	int weight = 0;		while(pCurrent)	{		weight = 1;		pItem = pCurrent->pItem;		while(pItem)		{			if(pItem->is_inserted == 1)			{				memset(sql, 0 , MAX_LENGTH * 4);					sprintf(sql, INSERT_NEWS, pItem->title, pItem->link, source_id, pCurrent->language, class_id, pItem->pubdate, pItem->description?pItem->description:"", weight);								if((ret = mysql_query(&mysql_conn, sql)) == 0)				{					weight++;					count++;				}			}			pItem = pItem->pNext;		}		pCurrent = pCurrent->pNext;		}		if(count != insert_count)	{//沒有完全添加到數(shù)據(jù)庫,恢復weight到相應值		//update_weight(count - insert_count, class_id, source_id);	}		/////////////////	//刪除超出指定數(shù)量的數(shù)據(jù)	remove_over_news(EACH_SOURCE_NUM_MAX, class_id, source_id);	/////////////////		return count;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色精品在线视频| 日韩欧美一级在线播放| 91在线视频网址| 欧美电影免费观看高清完整版在线 | 2022国产精品视频| 久久综合丝袜日本网| 亚洲伊人色欲综合网| 日韩av中文在线观看| 色先锋资源久久综合| 精品少妇一区二区三区日产乱码| 亚洲一区二区三区四区五区中文| 狠狠狠色丁香婷婷综合激情| 欧美视频一区二区三区在线观看 | 在线中文字幕不卡| 欧美激情一区二区三区| 激情综合色综合久久综合| 337p日本欧洲亚洲大胆色噜噜| 亚洲一区二区三区国产| 91美女片黄在线观看91美女| 中文字幕日韩一区二区| 成人综合婷婷国产精品久久蜜臀| 亚洲视频精选在线| 欧美精品日韩综合在线| 九九热在线视频观看这里只有精品| 欧美日韩综合色| 亚洲乱码国产乱码精品精98午夜| 久久电影网站中文字幕| 亚洲欧美国产三级| 欧美不卡在线视频| 色婷婷综合激情| 亚洲男人天堂av| 337p粉嫩大胆色噜噜噜噜亚洲| 国产乱理伦片在线观看夜一区| 成人免费观看av| 亚洲成人av资源| 欧美日本一区二区| 成人午夜激情片| 亚洲黄色小视频| 欧美一级片免费看| 欧美精品在线观看一区二区| 99国产麻豆精品| 在线综合视频播放| 国产精品毛片无遮挡高清| 777xxx欧美| 成人动漫av在线| 天使萌一区二区三区免费观看| 国产精品嫩草影院com| 国产精品一区不卡| 免费欧美高清视频| 亚洲午夜电影在线| 中文字幕在线观看不卡| 欧美日韩一区高清| 成人黄色小视频| 免费在线观看不卡| 亚洲欧美日韩国产手机在线 | 亚洲国产成人高清精品| 中文字幕免费不卡在线| 亚洲欧洲av在线| 中文字幕av免费专区久久| 69久久99精品久久久久婷婷 | 亚洲一区二区三区中文字幕| 亚洲婷婷综合色高清在线| 国产日本一区二区| 欧美成人女星排行榜| 欧美一级精品大片| 国产喷白浆一区二区三区| 欧美色精品在线视频| 99综合影院在线| 欧美色手机在线观看| 91浏览器在线视频| 欧美最猛性xxxxx直播| 欧美专区日韩专区| 欧美日韩一级视频| 日韩美女视频19| 亚洲精品国产一区二区三区四区在线 | 欧美一级日韩不卡播放免费| 欧美日韩大陆在线| 91精品国产色综合久久不卡蜜臀| 色香色香欲天天天影视综合网| 日韩免费高清电影| 亚洲成人福利片| 国模少妇一区二区三区| 欧美精品色综合| 久久综合色8888| 亚洲人成人一区二区在线观看| 不卡电影免费在线播放一区| 精品国产免费人成电影在线观看四季| 久久先锋影音av鲁色资源| 亚洲欧美怡红院| 国产成人日日夜夜| 精品盗摄一区二区三区| 亚洲日本一区二区三区| 成人免费不卡视频| 欧美一区二区在线视频| 综合网在线视频| 韩国三级在线一区| 91 com成人网| 亚洲激情图片qvod| 国产麻豆视频精品| wwwwxxxxx欧美| 国产露脸91国语对白| 日韩欧美亚洲一区二区| 成人免费三级在线| 久久久久久**毛片大全| 性做久久久久久| 福利一区二区在线观看| 91黄色免费看| 亚洲日本在线观看| 91亚洲精品乱码久久久久久蜜桃| 欧美日韩国产a| 亚洲一区二区精品视频| 欧美视频在线观看一区| 2020国产精品| 高清不卡一区二区| 亚洲18影院在线观看| 2024国产精品| 99精品视频在线免费观看| 亚洲成人动漫精品| 精品国产区一区| 国产白丝网站精品污在线入口| 欧美国产欧美亚州国产日韩mv天天看完整| 日韩精品午夜视频| 日韩欧美久久久| 欧美日韩一区三区四区| 午夜视频在线观看一区二区| 欧美www视频| 粉嫩嫩av羞羞动漫久久久| 亚洲色图欧美偷拍| 日韩欧美中文字幕精品| 一色屋精品亚洲香蕉网站| 亚洲成av人片一区二区三区| 欧亚一区二区三区| 国产乱人伦精品一区二区在线观看| 亚洲国产成人av| 久久奇米777| 国产成人丝袜美腿| 亚洲妇女屁股眼交7| 欧美老肥妇做.爰bbww| 激情国产一区二区| 五月天激情综合| 视频在线观看一区| 精品国精品自拍自在线| 色欧美乱欧美15图片| 91一区一区三区| 午夜精品久久久久影视| 久久久久久久国产精品影院| 成人国产视频在线观看| 日本亚洲三级在线| 欧美经典三级视频一区二区三区| 国产精品一二三区| 中文字幕一区二区三区在线播放 | 蜜臀99久久精品久久久久久软件| 2022国产精品视频| 欧美日本在线一区| proumb性欧美在线观看| 成人avav影音| 91美女在线视频| 不卡视频免费播放| 日本va欧美va欧美va精品| 亚洲成av人片| 亚洲成人久久影院| 亚洲高清免费观看| 成人午夜在线视频| 91网站在线播放| 日韩欧美二区三区| 亚洲国产高清在线观看视频| 日韩色在线观看| 国产精品人妖ts系列视频| 免费成人你懂的| 99麻豆久久久国产精品免费优播| 91小视频免费看| 欧美老肥妇做.爰bbww视频| 精品卡一卡二卡三卡四在线| 亚洲欧美一区二区三区孕妇| 中文字幕一区二区三区精华液| 成人欧美一区二区三区小说| 久久爱www久久做| 成人免费视频网站在线观看| 日韩一区二区电影网| 日韩美女啊v在线免费观看| 成人h动漫精品一区二区| 91麻豆免费看| 国产亚洲人成网站| 亚洲欧洲www| 国产精品一区二区x88av| 欧美日韩午夜影院| 亚洲日本在线观看| 成人精品一区二区三区四区| 国产亚洲精品超碰| 国产一区二区精品久久91| 7777精品伊人久久久大香线蕉完整版 | aaa欧美日韩| 91精品国产欧美日韩| 亚洲丝袜另类动漫二区| 国内精品伊人久久久久av影院 | 亚欧色一区w666天堂| 91美女精品福利| 欧美国产欧美亚州国产日韩mv天天看完整| 国产精品资源网站| 欧美人与禽zozo性伦|