电脑技术学习

帝国文章模型下如何把“存文本”转换为“存数据库”技巧

dn001

  帝国的文章模型,默认情况下,正文字段属性是内容存文本的!也就是不保存到数据库,但是这样对应数据库容量大的,就没必要了,想转换成存到数据库的,帝国ECMS就没带这功能。今天我就来介绍如何实现!

首先打开phome_enewsf表,找到文章模型下正文字段的设置信息,找到 savetxt tinyint(1) 内容存文本 1是/0否
这个字段,把1改为0即可。
接着写一个PHP程序,代码大致如下

$sql=$empire->query("select id,newstext from {$dbtbpre}ecms_article_data_1 ORDER BY `id` ASC");
while($r=$empire->fetch($sql)){
;$file=$r['newstext'];
;$my_file = file_get_contents("d/txt/".$file.".php");
;$a = str_replace("<? exit();?>","",$my_file);
;echo $r['id']."<br/>";
$empire->fetch1("UPDATE `phome_ecms_article_data_1` SET `newstext` = '".$a."' WHERE `id` =".$r['id']." LIMIT 1");
}

上面红色的表示文章数据表的分表,我是把正文字段设置为副表里。主表的直接ecms_article就可以了。

以上代码中的路径是按网站跟目录下的相对路径。
我网站也是这样转换成功的,由于我网站数据小,就没设置间隔,要是数据大的,请自己设置没转换多少条信息时停顿下,不然怕卡死!