:::

6-5-2 更新模組時的自動修改資料庫欄位

您沒有觀看影片的權限

您沒有觀看影片的權限

請先登入,登入後,確認您的權限後,即可觀看影片。

  1. 假如想要多一個候補人數欄位,我們先修改 sql\mysql.sql
    CREATE TABLE `tad_signup_actions` (
      `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
      `title` varchar(255) NOT NULL,
      `detail` text NOT NULL,
      `action_date` datetime NOT NULL,
      `end_date` datetime NOT NULL,
      `number` smallint(5) unsigned NOT NULL,
      `setup` text NOT NULL,
      `uid` mediumint(8) unsigned NOT NULL,
      `enable` enum('1','0') NOT NULL,
      `candidate` tinyint(3) unsigned NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    

     

  2. 接著編輯 class\Update.php,我們將自動功能會用到的方法都放在這裡
    <?php
    namespace XoopsModules\Tad_signup;
    
    class Update
    {
        /*--略--*/
    
        // 進行有無候補欄位檢查
        public static function chk_candidate()
        {
            global $xoopsDB;
            $sql = 'SELECT count(`candidate`) FROM ' . $xoopsDB->prefix('tad_signup_actions') . ' ';
            $result = $xoopsDB->query($sql);
            if (empty($result)) {
                return true;
            }
    
            return false;
        }
    
        // 執行新增候補欄位
        public static function go_candidate()
        {
            global $xoopsDB;
            $sql = 'ALTER TABLE ' . $xoopsDB->prefix('tad_signup_actions') . ' ADD `candidate` tinyint(3) unsigned NOT NULL';
            $xoopsDB->queryF($sql) or redirect_header(XOOPS_URL . '/modules/system/admin.php?fct=modulesadmin', 30, $xoopsDB->error());
        }
    }
    

     

  3. 最後編輯 include\onUpdate.php,加入該方法
    <?php
    use XoopsModules\Tadtools\Utility;
    if (!class_exists('XoopsModules\Tadtools\Utility')) {
        require XOOPS_ROOT_PATH . '/modules/tadtools/preloads/autoloader.php';
    }
    
    use XoopsModules\Tad_signup\Update;
    if (!class_exists('XoopsModules\Tad_signup\Update')) {
        require dirname(__DIR__) . '/preloads/autoloader.php';
    }
    
    /*--略--*/
    
    // 更新後
    function xoops_module_update_tad_signup(XoopsModule $module, $old_version)
    {
        global $xoopsDB;
    
        // 新增候補欄位
        if (Update::chk_candidate()) {
            Update::go_candidate();
        }
    
        return true;
    }
    

     

  4. 更新模組試試,看有無新增候補人數欄位

link to https://github.com/tadlearn/tad_signup/commit/29a802f9280f493bb3475b7b0d3d3eeefe8f06f5 \


:::

搜尋

QR Code 區塊

https%3A%2F%2Fwww.tad0616.net%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D48%26tbdsn%3D1737

書籍目錄

展開 | 闔起

線上使用者

31人線上 (4人在瀏覽線上書籍)

會員: 0

訪客: 31

更多…