技术揭密之:DedeCMS存储过程

转载 2007年10月14日 13:07:00

一、相关介绍

什么是“存储过程”?
存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,使用时只要调用即可。
通过调用存储过程,对CMS(内容管理系统)、论坛等进行采集结果入库。



二、添加文章的存储过程

DROP PROCEDURE IF EXISTS AddArchives;
CREATE PROCEDURE AddArchives($typeid int, $adminID int, $writer varchar(30), $soruce varchar(50), $title varchar(80), $body mediumtext)
BEGIN
IF $adminID IS NULL THEN
  SELECT MIN(id) INTO $adminID FROM dede_admin;
END IF;
IF $writer IS NULL THEN
  SET $writer = '';
END IF;
IF $soruce IS NULL THEN
  SET $soruce = '';
END IF;


INSERT INTO dede_archives (typeid, adminID, writer, source, title, pubdate, senddate) VALUES ($typeid, $adminID, $writer, $soruce, $title, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
INSERT INTO dede_addonarticle (typeid, aid, body) VALUES ($typeid, last_insert_id(), $body);
END;


上面的代码创建一个名为AddArchives的存储过程,用来添加文章。
参数列表:

1、$typeid
栏目ID,表示将要添加到的栏目。需要手动指定一个栏目ID(参见下文“存储过程调用”)。


2、$adminID
管理员ID,添加时使用的管理员ID。需要手动指定一个管理员ID(参见下文“存储过程调用”)。如果不指定,将默认使用一个最小的管理员ID。

3、$writer
文章作者,指采集到的文章作者。如果未采集,将默认为空。


4、$soruce
文章来源,如果未指定,将默认为空。


5、$title
文章标题,指采集到的文章标题。标题是必须的,为空时记录将不能入库。

6、$body
文章内容,指采集到的文章
内容。内容是必须的,为空时记录将不能入库。

三、添加软件的存储过程

DROP PROCEDURE IF EXISTS AddSoft;
CREATE PROCEDURE AddSoft($channel int, $typeid int, $adminID int, $writer varchar(30), $soruce varchar(50), $title varchar(80), $language varchar(10), $softtype varchar(10), $os varchar(30), $accredit varchar(10), $softsize varchar(10), $officialUrl varchar(30), $officialDemo varchar(50), $softlinks text, $introduce text)
BEGIN
IF $adminID IS NULL THEN
  SELECT MIN(id) INTO $adminID FROM dede_admin;
END IF;
IF $writer IS NULL THEN
  SET $writer = '';
END IF;
IF $soruce IS NULL THEN
  SET $soruce = '';
END IF;
IF $officialUrl IS NULL THEN
  SET $officialUrl = '';
END IF;
IF $officialDemo IS NULL THEN
  SET $officialDemo = '';
END IF;

IF $introduce IS NULL THEN
  SET $introduce = '';
END IF;


INSERT INTO dede_archives (channel, typeid, adminID, writer, source, title, pubdate, senddate) VALUES ($channel, $typeid, $adminID, $writer, $soruce, $title, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
INSERT INTO dede_addonsoft (typeid, aid, language, softtype, os, accredit, softsize, officialUrl,  officialDemo, softlinks, introduce) VALUES ($typeid, last_insert_id(), $language, $softtype, $os, $accredit, $softsize, $officialUrl, $officialDemo, $softlinks, $introduce);
END;


上面的代码创建一个名为AddSoft的存储过程,用来添加回复。参数列表:


1、$channel
频道ID,表示将要添加到的频道。需要手动指定一个频道ID(参见下文“存储过程调用”)。


2、$typeid
栏目ID,表示将要添加到的栏目。需要手动指定一个栏目ID(参见下文“存储过程调用”)。

3、$adminID
管理员ID,添加时使用的管理员ID。需要手动指定一个管理员ID(参见下文“存储过程调用”)。如果不指定,将默认使用一个最小的管理员ID。

4、$writer
软件作者,指采集到的软件作者。如果未采集,将默认为空。


5、$soruce
软件来源,如果未指定,将默认为空。


6、$title
软件名称,指采集到的软件名称。名称是必须的,为空时记录将不能入库。

7、$language
界面语言,
必须。


8、$softtype
软件类型,必须。

9、$os
运行环境,必须。

10、$accredit
授权方式,必须。


11、$softsize
软件大小,必须。

12、$officialUrl
官方网址,可选。

13、$officialDemo
演示网址,可选。

14、$softlinks
软件链接列表,必须。
链接列表是指在一个字段中保存了多个下载地址,DedeCMS的链接列表格式为:

{dede:link text='本地下载1'} http://www.aaa.com/down/file.rar {/dede:link}
{dede:link text='本地下载2'} http://www.bbb.com/down/file.rar {/dede:link}


因此,采集时必须将带有链接的采集结果替换成上面的格式。(参见软件帮助中的“采集结果替换”)

13、$introduce
软件介绍,可选。

原文地址:http://bbs.sensite.cn/viewthread.php?tid=10&page=1&extra=page=1

DEDEcms图片附件上传到又拍云使用云存储

dede的附件服务器这个功能实在是鸡肋
  • huamutongyou
  • huamutongyou
  • 2014年09月26日 16:42
  • 2257

什么时候用存储过程+分页例子

存储过程一般用于处理比较复杂的任务,基础ms这个平台,可以大大降低耗时,其编译机制也提高了数据库执行速度。 当然在系统控制方便方面,例如当系统进行调整时,这是只需要将后台存储过程进行更改,而不需要更...
  • cc41798520101
  • cc41798520101
  • 2016年08月02日 16:00
  • 916

动作手游实时PVP技术揭密(服务器篇)

前言   我们的游戏是一款以忍者格斗为题材的ACT游戏,其主打的玩法是PVE推图及PVP 竞技。在剧情模式中,高度还原剧情再次使不少玩家泪目。而竞技场的乐趣,伴随着赛季和各种赛事相继而来,也深受玩家...
  • qq_18536721
  • qq_18536721
  • 2016年09月30日 20:41
  • 1166

存储过程游标的详解

1,什么是游标?  ①从表中检索出结果集,从中每次指向一条记录进行交互的机制。      ②关系数据库中的操作是在完整的行集合上执行的。   由SELECT 语句返回的行集合包括满足该语句的W...
  • gogogo_zzz
  • gogogo_zzz
  • 2016年09月21日 15:29
  • 656

HashMap的原理和使用

原文出处:http://www.cnblogs.com/chenssy/p/3521565.html      HashMap也是我们使用非常多的Collection,它是基于哈希表...
  • buptdavid
  • buptdavid
  • 2015年05月27日 10:27
  • 1191

中文搜索引擎技术揭密

系统架构     互联网在近10年的得到飞速发展,互联网正在逐渐深入人们的生活,改变人们的生活。互联网经济也经历了风风雨雨,从缓慢起步到急速膨胀,从泡沫破灭到逐步回暖;从“网络广告”到“拇指经济...
  • DSeven
  • DSeven
  • 2013年05月18日 17:46
  • 2445

SQLserver2008,存储过程,游标的使用。

当我们需要用到 存储过程的时候,你会发现,有时候不仅仅是对数据的增删改查,经常需要对中间表的结果集进行操作,下面我先讲一下我这里的业务逻辑,然后再贴代码块, 我们微信上面由客户经理发放企业红包,需要粉...
  • zhangxc0310
  • zhangxc0310
  • 2016年05月30日 09:48
  • 2057

存储过程是什么?有什么用?有什么…

存储过程(Stored Procedure)是一组为了完成特定功能的 SQL 语句集,经编译后存 储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执 行它。存储过程是 ...
  • u014181676
  • u014181676
  • 2014年03月25日 21:51
  • 2211

在PL/SQL中调用存储过程--oracle

在oracle10中写好了存储过程,代码如下: CREATE OR REPLACE Procedure Proc_Insert ( sName in varchar2,...
  • wozengcong
  • wozengcong
  • 2013年12月07日 10:46
  • 23997

Oracle中的存储过程简单例子

接下来会更多的学习Oracle的存储过程
  • o9109003234
  • o9109003234
  • 2014年05月03日 11:17
  • 66231
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:技术揭密之:DedeCMS存储过程
举报原因:
原因补充:

(最多只允许输入30个字)