技术揭密之:DedeCMS存储过程

一、相关介绍

什么是“存储过程”?
存储过程是由流控制和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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值