十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
直接修改数据库就行了。或者你自己写alter table语句执行一下也可以。thinkphp并没有内置这种功能。
成都创新互联公司网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,网站设计制作、成都网站建设,塑造企业网络形象打造互联网企业效应。
mysql_connect('地址','用户名','密码');
mysql_select_db('数据库名');
$sql = "ALTER TABLE `表名` ADD `列名` 数据类型";
mysql_query($sql);
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 模板中进行调用。
这个无关php。单纯的SQL语法。
mysql_query(" ALTER TABLE tablename ADD COLUMN colname type");
ALTER语法,更多SQL语法请查看
货币可以用Decimal(10,2)类型,但是建议直接乘以100以整数形式进行存储,因为很多语言对浮点数运算会有误差。
?php
class MysqlManage{
/*创建数据库,并且主键是aid
* table 要查询的表名
*/
function createTable($table){
$sql="CREATE TABLE IF NOT EXISTS `$table` (`aid` INT NOT NULL primary key)ENGINE = InnoDB;";
M()-execute($sql);
$this-checkTable($table);
}
/*
* 检测表是否存在,也可以获取表中所有字段的信息
* table 要查询的表名
* return 表里所有字段的信息
*/
function checkTable($table){
$sql="desc `$table`";
$info=M()-execute($sql);
return $info;
}
/*
* 检测字段是否存在,也可以获取字段信息(只能是一个字段)
* table 表名
* field 字段名
*/
function checkField($table,$field){
$sql='desc `$table` $field';
$info=M()-execute($sql);
return $info;
}
/*
* 添加字段
* table 表名
* info 字段信息数组 array
* return 字段信息 array
*/
function addField($table,$info){
$sql="alter table `$table` add column";
$sql.=$this-filterFieldInfo();
M()-execute($sql);
$this-checkField($table,$info['name']);
}
/*
* 修改字段
* 不能修改字段名称,只能修改
*/
function editField($table,$info){
$sql="alter table `$table` modify ";
$sql.=$this-filterFieldInfo($info);
M()-execute($sql);
$this-checkField($table,$info['name']);
}
/*
* 字段信息数组处理,供添加更新字段时候使用
* info[name] 字段名称
* info[type] 字段类型
* info[length] 字段长度
* info[isNull] 是否为空
* info['default'] 字段默认值
* info['comment'] 字段备注
*/
private function filterFieldInfo($info){
if(!is_array($info))
return
$newInfo=array();
$newInfo['name']=$info['name'];
$newInfo['type']=$info['type'];
switch($info['type']){
case 'varchar':
case 'char':
$newInfo['length']=empty($info['length'])?100:$info['length'];
$newInfo['isNull']=$info['isNull']==1?'NULL':'NOT NULL';
$newInfo['default']=empty($info['default'])?'':'DEFAULT '.$info['default'];
$newInfo['comment']=empty($info['comment'])?'':'COMMENT '.$info['comment'];
break;
case 'int':
$newInfo['length']=empty($info['length'])?7:$info['length'];
$newInfo['isNull']=$info['isNull']==1?'NULL':'NOT NULL';
$newInfo['default']=empty($info['default'])?'':'DEFAULT '.$info['default'];
$newInfo['comment']=empty($info['comment'])?'':'COMMENT '.$info['comment'];
break;
case 'text':
$newInfo['length']='';
$newInfo['isNull']=$info['isNull']==1?'NULL':'NOT NULL';
$newInfo['default']='';
$newInfo['comment']=empty($info['comment'])?'':'COMMENT '.$info['comment'];
break;
}
$sql=$newInfo['name']." ".$newInfo['type'];
$sql.=(!empty($newInfo['length']))?($newInfo['length']) .' ':' ';
$sql.=$newInfo['isNull'].' ';
$sql.=$newInfo['default'];
$sql.=$newInfo['comment'];
return $sql;
}
/*
* 删除字段
* 如果返回了字段信息则说明删除失败,返回false,则为删除成功
*/
function dropField($table,$field){
$sql="alter table `$table` drop column $field";
M()-execute($sql);
$this-checkField($table,$filed);
}
/*
* 获取指定表中指定字段的信息(多字段)
*/
function getFieldInfo($table,$field){
$info=array();
if(is_string($field)){
$this-checkField($table,$field);
}else{
foreach($field as $v){
$info[$v]=$this-checkField($table,$v);
}
}
return $info;
}
}