联系官方销售客服
1835022288
028-61286886
PHP程序里面
各位好,我正打算建一个数据应用的插件,是一种科研机构的特殊需求,目前思路有的,我已经应用于实际生产中了,只不过最近想转移到迅睿CMS上来。
目前遇到一个向数据表插入数据的问题。
我的子站数据表如下:
CREATE TABLE IF NOT EXISTS `{dbprefix}yth_app` (
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT'自增ID',
`name` varchar(255) NOT NULL COMMENT'应用名称',
`description` text NOT NULL COMMENT'应用描述',
`seo` json DEFAULT NULL COMMENT'SEO设置',
`is_unified_user_groups` int(1) NOT NULL DEFAULT '0' COMMENT'是否限制用户组',
`unified_user_groups` json DEFAULT NULL COMMENT'统一设置用户组',
`is_unified_data_source` int(1) NOT NULL DEFAULT '0' COMMENT'是否限制数据源',
`unified_data_source` json DEFAULT NULL COMMENT'统一设置数据源',
`is_unified_limit_ip` int(1) NOT NULL DEFAULT '0' COMMENT'是否限制IP',
`unified_limit_ip` json COMMENT'统一设置IP',
`is_unified_data_filtering` int(1) NOT NULL DEFAULT '0' COMMENT'是否提取数据',
`unified_data_filtering` json DEFAULT NULL COMMENT'统一数据提取',
。。。。。
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数据一体化应用表';
类似于数据源筛取规则,只能保存为json,每个应用都不一样的,这里不能存为固定字段。
我是新手,模仿api接口用的方法,
public function add() {
$this->_Post(0);
// print_r($tpl);exit;home_post.html
\Phpcmf\Service::V()->assign('disabled', 0);
\Phpcmf\Service::V()->display('yth_admin_add_app.html');
}
结果在插入数据时报错了,还是数据插入到数据表的语句有问题。
现在SQL语句是:我通过mysql执行记录找到的
REPLACE INTO `dr_yth_app` (`name`, `description`, `seo`, `unified_user_groups`, `unified_data_source`, `unified_limit_ip`, `unified_template`, `unified_separate`, `unified_img_source`) VALUES ('一体化平台', '123', ('','',''), ('1','2','3','4'), ('','','',''), '{}', ('','',''), '', '{}')
现在这个语句是明显有问题的,
我提交的数据是:
Array ( [name] => 这是测试 [description] => 这是测试 [seo] => Array ( [seo_title] => [seo_keywords] => [seo_description] => ) [unified_user_groups] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) [unified_data_source] => Array ( [ip] => [acount] => [password] => [base] => ) [unified_limit_ip] => {} [unified_template] => Array ( [index] => [channel] => [content] => ) [unified_separate] => [unified_img_source] => {} )
因为才开始使用并琢磨迅睿cms,我对数据的sql形成过程一头雾水。
所以我在想办法解决这个问题,在这里请教一下。
数据表的字段结构好改的,这个按实际结果调整。
类似于seo字段,我提交的字段里是区分了3个 ( [seo_title] => [seo_keywords] => [seo_description] => ) 为什么插入时都没有对应关系了?
我现在是直接用的post(0),是不是向我这种自定义需求的,不能用post()这种方法,必须使用
\Phpcmf\Service::M()->db->table(SITE_ID.'_census')->insert($arr[0]);
这种形式?
4.作为一个自定义插件,我的数据插入只针对自己的表,是不是在add()方法里直接操作数据入表?
回复迅睿框架创始人