DedeCMS的存储过程简介

DedeCMS存储过程

什么是“存储过程”?
存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,使用时只要调用即可。用 mysql-front或 Navicat MySQL 调试.

只有MySQL5.x以上版本才支持存储过程,所以低版本的用户使用存储过程需要升级数据库

DedeCMS存储过程 – 添加文章的存储过程
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
文章内容,指采集到的文章内容。内容是必须的,为空时记录将不能入库。

DedeCMS存储过程 – 添加软件的存储过程
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
软件介绍,可选。

发表评论