扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
程序在获取数据的时候,如果你不指定获取数据的字段,那么程序会去解析数据库获取对应的字段,为此增加了IO的开销,如果把$field里面的字段补充完整,可以减少IO的输出提高性能
我们提供的服务有:网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、阳原ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的阳原网站制作公司
function add($name, $type, $size, $defaultvalue = '', $options = '', $title = '', $note = '', $formtype = '', $inputtool = '', $inputlimit = '', $enablehtml = 1, $enablelist = 1, $enablesearch = 0)
{
if(!in_array($type, $this-fieldtypes) || $this-exists($name)) return FALSE;
$size = intval($size);
$fieldsize = $type == 'varchar' ? min($size, 255) : ($type == 'int' ? min($size, 10) : 0);
$fieldtype = strtoupper($type);
if($fieldsize) $fieldtype .= "( $fieldsize )";
$this-db-query("ALTER TABLE $this-table ADD $name $fieldtype NOT NULL");
$this-db-query("INSERT INTO ".TABLE_FIELD."(tablename,name,type,size,defaultvalue,options,title,note,formtype,inputtool,inputlimit,enablehtml,enablelist,enablesearch) VALUES('$this-table','$name','$type','$size','$defaultvalue','$options','$title','$note','$formtype','$inputtool','$inputlimit','$enablehtml','$enablelist','$enablesearch')");
$result = $this-db-affected_rows();
$this-cache();
return $result;
}
function edit($fieldid, $type, $size, $defaultvalue = '', $options = '', $title = '', $note = '', $formtype = '', $inputtool = '', $inputlimit = '', $enablehtml = 1, $enablelist = 1, $enablesearch = 0)
{
if(!in_array($type, $this-fieldtypes)) return FALSE;
$fieldid = intval($fieldid);
$field = $this-get_info($fieldid);
$name = $field['name'];
$size = intval($size);
$fieldsize = $type == 'varchar' ? min($size, 255) : ($type == 'int' ? min($size, 10) : 0);
$fieldtype = strtoupper($type);
if($fieldsize) $fieldtype .= "( $fieldsize )";
$this-db-query("ALTER TABLE `$this-table` CHANGE `$name` `$name` $fieldtype NOT NULL");
$this-db-query("UPDATE ".TABLE_FIELD." SET title='$title',note='$note',type='$type',size='$size',defaultvalue='$defaultvalue',options='$options',formtype='$formtype',inputtool='$inputtool',inputlimit='$inputlimit',enablehtml='$enablehtml',enablelist='$enablelist',enablesearch='$enablesearch' WHERE fieldid=$fieldid");
$result = $this-db-affected_rows();
$this-cache();
return $result;
}
function delete($fieldid)
{
$fieldid = intval($fieldid);
$r = $this-db-get_one("SELECT name FROM ".TABLE_FIELD." WHERE fieldid=$fieldid");
if(!$r) return FALSE;
$name = $r['name'];
$this-db-query("ALTER TABLE $this-table DROP $name");
$this-db-query("DELETE FROM ".TABLE_FIELD." WHERE fieldid=$fieldid");
$result = $this-db-affected_rows();
$this-cache();
return $result;
}
db数据库类去下个phpcms里面的就是上面的是自定义字段的操作函数
phpcms v9 单页添加自定义字段方法如下:
1、给单页 page 自定义摘要
第一步,打开数据库,找到 v9_page 数据表添加一个 description 字段,字段类型为 varchar,长度为 255即可。
第二步,打开 phpcms\modules\content\templates\content_page.tpl.php 文件,并到到如下代码:
tr
th width="80" ?php echo L('content');?/th
td
//上方添加:
tr
th width="80"内容简介/th
tdtextarea type="text" name="info[description]"
style='width:98%;height:46px;'?php echo $description?
/textarea只可输入Bspan id="description_len"255
/span/B 个字符 /td
/tr
更改完成之后,我们还需要更新一下后台缓存,然后进行某一个单页的编辑,这个时候就会有文章摘要的字段了,前台只需要进行调用 {$description} 就可以了。
二、给单页 page 自定义图片字段,方便图片的上传.
上面已经介绍过如何给单页添加文字字段了,这里再介绍下如何给单页添加一个图片的字段,并可以进行图片的上传。
1、同样打开mysql数据库,找到 v9_page表,打开表结构并添加一个图片的字段:catpic类型varchar,长度100,当然也可以不用进行设置。
2、打开 phpcms\modules\content\templates\content_page.tpl.php文件,在48行下面插入如下代码:
tr
th width=”80〃栏目图片/th
td
?php echo form::images(‘info[catpic]‘, ‘image’, $catpic, ‘content’);?
/td/tr
更改完之后,进行后台缓存更新,然后再进行单页的添加或者编辑的时候就可以看到自定义的上传图片字段了,在前台调用的代码为 {$catpic},
直接在 page.html 模板中进行调用。
首先说明一点,用序列化和JSON不会不安全啊,数据安不安全取决于你的程序有没有过滤并且处理好要入库的数据,一般来说,入库的数据是需要保证安全的。
对于你这个问题,最好的做法还是字段扩展,这样至少搜索速度上不会出现大问题,如果是将所有的数据都放到一个字段上,就是上面的content字段,这样后续并不利于搜索,数据感觉也比较混乱。如果仅仅是多语言实现,单词之间的对应关系,这样使用单字段还是可以的,毕竟数据也不多。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流