php 多語言 sql 要怎麼寫

來源:互聯網
上載者:User
每一個函數我都要判斷$_SESSION['language']的值,可以怎麼最佳化?
public function getA(){        if($_SESSION['language']=="tc"){            $sql="select a_tc from table";        }elseif($_SESSION['language']=="en"){            $sql="select a_en from table";        }    }    public function getB(){        if($_SESSION['language']=="tc"){            $sql="select b_tc from table";        }elseif($_SESSION['language']=="en"){            $sql="select b_en from table";        }    }


回複討論(解決方案)

即然language是欄位的一部分,直接拼接成SQL就行了

你可以最佳化表,設定一個語言欄位,通過$_SESSION['language']取資料:
select content from table where language = $_SESSION['language']
這樣不管後面來多少種語言都迎刃而解了,可擴充性好

$sql = "select a_$_SESSION[language] from table";

但需要指定預設值,第一次進入時是沒有 $_SESSION['language'] 的
不過你的代碼也沒有進行處理

#2 的方案是不妥當的
1、冗餘量太大
2、不易產生對照
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.