解決shopnc調用不同的表前綴數據表的過程

之因此備註一下,總結一下問題產生,解決的過程,便於之後對於邏輯思惟的糾正。

問題產生後,主要是思考如何修改model方法,這就便了,由於shopnc中必需要實例化數據表才行,而實例化數據表必須從基類着手,後來高手指點後,又懸入迷茫之中,由於不會用,其實不是不會用,而是想不到,知識是有了,缺乏靈活性和主動性。php

起初就想即然有表前綴就在model()函數中加唄,有一個壇友也提出這個辦法,但後來試了一下不行,由於第二個參數根本不是表前綴的參數,後來又思考,原來忘了建一個該數據表的php模型類了,在此類中的構造函數中就能夠加上這個前綴參數了,不過在寫的過程當中仍是出現了一些小錯誤,好比沒有寫下劃線。數據庫

shopnc中如何調用同一個庫中的前綴不同的表中數據

【阿里雲限時折扣】真正免費.com.xin域名0元搶>>> »  api

@劉萬傑  你好,想跟你請教個問題:數組

先說說原委:shopnc數據庫中也同時安裝了discuz論壇的表,如今想在shopnc中調用某個論壇表中的數據。函數

而且我想用shopnc自帶的數據庫類方法調用。this

我看了一下,用query()是能夠的,但總感受不是很正規。我是想用相似阿里雲

$pic = $model->table('album_pic')->field('apic_cover')->where(array('aclass_id'=>array('in',$_POST['aclass_id'])))->select();spa

這樣的形式調用,但此時問題出現了,由於shopnc的數據表前綴和discuz論壇的前綴是不同的,因此沒法調用前綴不同的數據,即使在model中寫上某個論壇表的類也不行,不知你有好辦法嗎?.net

 

---------------問題補充---------------code

@ziluopao :萬傑看來只能用query了(14小時前)刪除

ziluopaoziluopao
發帖於 18小時前
3回/29閱

標籤: PHP ShopNC

  • 補充話題 
  • | 編輯 
  • | 刪除 
  • |  舉報 
  • | 分享到

0收藏(0)

按票數排序  顯示最新答案  共有3個答案 (最後回答: 1分鐘前 )

0

0

0

  • ziluopaoziluopao1分鐘前

    引用來自「net ljx」的評論

    修改model基類:

    原來的:

     

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    public function __construct($table = null){

            if (!is_null($table)){

                $this->table_name = $table;

                $this->tableInfo($table);

            }

            $this->table_prefix = DBPRE;

            if (!is_object($this->db)){

                $this->db = new ModelDb();

            }

        }

     

     

    擴展後:

     

     

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    public function __construct($table = null, $table_prefix = DBPRE){

            if (!is_null($table)){

                $this->table_name = $table;

                $this->tableInfo($table);

            }

            $this->table_prefix = $table_prefix;

            if (!is_object($this->db)){

                $this->db = new ModelDb();

            }

        }

     

     

     

     

    引用來自「ziluopao」的評論

    我試了一下,沒有打印出數組來,估計是我哪裏用錯了!

    不過我感受有門!多謝哈!

    有一個疑問請解答一下,$table_prefix = DBPRE是表前綴設置參數,但這個參數用的時候即實參在哪裏設置呢,好比我寫一個select句:

     $newslist1 = Model('mypre_abef_ws')->select();

    但Model方法沒有設置第二個參數的設置

    出來了,不過

     $newslist1 = Model('abef_ws','mypre')->select();

    第一個參數不能帶前綴,這樣就打印出來了,多謝二位指點!

    評論(0)| 引用此答案| 修改| 刪除| 舉報 (2016-06-01 11:49)

  • net ljxnet ljx53分鐘前

    修改model基類:

    原來的:

     

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    public function __construct($table = null){

            if (!is_null($table)){

                $this->table_name = $table;

                $this->tableInfo($table);

            }

            $this->table_prefix = DBPRE;

            if (!is_object($this->db)){

                $this->db = new ModelDb();

            }

        }

     

     

    擴展後:

     

     

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    public function __construct($table = null, $table_prefix = DBPRE){

            if (!is_null($table)){

                $this->table_name = $table;

                $this->tableInfo($table);

            }

            $this->table_prefix = $table_prefix;

            if (!is_object($this->db)){

                $this->db = new ModelDb();

            }

        }

     

     

     

     

    評論(0)| 引用此答案| 舉報 (2016-06-01 10:58)

  • ziluopaoziluopao27分鐘前

    引用來自「net ljx」的評論

    修改model基類:

    原來的:

     

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    public function __construct($table = null){

            if (!is_null($table)){

                $this->table_name = $table;

                $this->tableInfo($table);

            }

            $this->table_prefix = DBPRE;

            if (!is_object($this->db)){

                $this->db = new ModelDb();

            }

        }

     

     

    擴展後:

     

     

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    public function __construct($table = null, $table_prefix = DBPRE){

            if (!is_null($table)){

                $this->table_name = $table;

                $this->tableInfo($table);

            }

            $this->table_prefix = $table_prefix;

            if (!is_object($this->db)){

                $this->db = new ModelDb();

            }

        }

     

     

     

     

    我試了一下,沒有打印出數組來,估計是我哪裏用錯了!

    不過我感受有門!多謝哈!

    有一個疑問請解答一下,$table_prefix = DBPRE是表前綴設置參數,但這個參數用的時候即實參在哪裏設置呢,好比我寫一個select句:

     $newslist1 = Model('mypre_abef_ws')->select();

    但Model方法沒有設置第二個參數的設置

    --- 共有 1 條評論 ---
    • 倚地屠蛇$newslist1 = Model('mypre_abef_ws', '前綴前綴前綴綴')->select(); (11分鐘前)  

    評論(1)| 引用此答案| 修改| 刪除| 舉報 (2016-06-01 11:24)

相關文章
相關標籤/搜索