ppypp伦理天堂,91手机在线视频,免费在线观看黄色毛片,夜夜穞天天穞狠狠穞AV美女按摩

聯系官方銷售客服

1835022288

028-61286886

投訴 已解決 是不是在add()方法里直接操作數據入表? 3 0
迅睿CMS版本:4.3.7

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形成過程一頭霧水。

所以我在想辦法解決這個問題,在這里請教一下。

  1. 數據表的字段結構好改的,這個按實際結果調整。

  2. 類似于seo字段,我提交的字段里是區分了3個 ( [seo_title] => [seo_keywords] => [seo_description] => ) 為什么插入時都沒有對應關系了?

  3. 我現在是直接用的post(0),是不是向我這種自定義需求的,不能用post()這種方法,必須使用

 \Phpcmf\Service::M()->db->table(SITE_ID.'_census')->insert($arr[0]);

這種形式?

4.作為一個自定義插件,我的數據插入只針對自己的表,是不是在add()方法里直接操作數據入表?

解決方案
  • 插入前,需要把數組的字段轉換為字符串,才能入庫

    dr_array2string函數

    • 創始人您好,請問要把post過來的數據進行格式化,比如dr_array2string,應該在哪里進行?

      也就是說,不能直接使用post()這個方法了,像是http.php那個用法

      list($tpl) = $this->_Post(0);

      我應該不可以直接修改table文件,那么是不是用鉤子的寫法?

      或者,我應該采放棄用$this->_Post(0);直接用數據表的寫法?

      也就是

      \Phpcmf\Service::M()->db->table(SITE_ID.'_census')->insert($arr[0]);



      回復迅睿框架創始人

  • 只能在入庫前使用轉換,否則入庫會報錯

    推薦使用這個文檔

    參考文檔:《Table操作類》

    滿意答案
    短信幣+1
  • 迅睿框架創始人:非常感謝回復,我去仔細學習你給出的文檔