比如要在商城频道里边增加一条参数,平时全新安装语句是可以这样使用。
INSERT INTO `qb_config` (`id`, `type`, `title`, `c_key`, `c_value`, `form_type`, `options`, `ifsys`, `htmlcode`, `c_descrip`, `list`, `sys_id`) VALUES(0, -1, '允许享受VIP价格的用户组', 'group_vip_price', '3,11', 'usergroup2', '', 0, '', '', 0, 4);r
第一项id变成 `0` 第二项type变成 `-1` ,这仅仅适合全新安装,如果是升级的话,就不适用的。升级的话,只能用程序执行,比如新增加这样一个文件
`applicationshopupgradeU1.php` 文件名是可以随意的,但首字母必须要大写,里边的类名也要对应一样
内容如下
namespace appshopupgrade;r
r
use thinkDb;r
r
class U1{r
public static function up(){r
$sysid = modules_config('shop')['id'];r
$type = Db::name('config_group')->where('sys_id',$sysid)->value('id');r
into_sql("INSERT INTO `qb_config` (`id`, `type`, `title`, `c_key`, `c_value`, `form_type`, `options`, `ifsys`, `htmlcode`, `c_descrip`, `list`, `sys_id`) VALUES(0, {$type}, '允许享受VIP价格的用户组', 'group_vip_price', '3,11', 'usergroup2', '', 0, '', '', 0, {$sysid});");r
}r
}
上面SQL语句用到了两个变量 `$sysid` `$type` ,当然id值也必须要设置为0
注意`U1`是文件名要与类名一样.大写字母开头. 命名空间也要注意一致. 方法名必须是up() 这样用户升级下载这个文件的时候,就会被执行了.以后就不能再修改.不然用户又要重新下载一次,又会重新执行多一次.,