【问题标题】:Use existing MySQL database in CodeIgniter在 CodeIgniter 中使用现有的 MySQL 数据库
【发布时间】:2012-09-06 09:46:54
【问题描述】:

在我的 PHP 网站中,我使用 SiteTranslator 脚本将网站翻译成 30 种语言。每个翻译都存储在自己的表中(text_en、text_de...),每个表有 3 列(textKey、textValue、lastUpdate)。

现在我想在我的 CodeIgniter 应用程序中使用该数据库。 最好的方法是什么?

【问题讨论】:

  • 你想做什么?要使用它,您必须阅读 CodeIgniter 用户指南,尤其是 Database Class 部分:codeigniter.com/user_guide/database/index.html
  • 你的问题太宽泛了,试试具体的
  • 如果你想和另一个数据库一起使用它,你可以连接到多个数据库。在documentation 中阅读更多信息。

标签: mysql codeigniter localization multilingual


【解决方案1】:

您可以按照建议使用多个数据库,但您仍然需要设置您的应用语言文件

{在用户指南中阅读更多内容}

根据第一个 uri 段,您可以尝试这样的操作。

添加路线

$route['en|fr|gr/test'] = 'test';

第一段检查 enfr 或其他任何内容。

然后 主控制器test 控制器初始化和 db(object) && app(语言) 文件已设置

www.site.com/en/test => 加载英语语言文件(application/language/english/mylanguage) 和 db

www.site.com/fr/test => 加载法语语言文件(application/language/french/mylanguage) 和 db ...等等

主控制器

class MY_Controller extends CI_Controller{

    protected $lang, $db;

    public function __construct(){
        parent::__construct();

        $this->set_language();
    }

    protected function set_language(){
        switch($this->uri->segment(1))
        {
            case 'en':
                $this->lang     = $this->lang->load('mylanguage', 'english');
                $this->db       = $this->load->database('en', TRUE); 
            break;

            case 'fr':
                $this->lang     = $this->lang->load('mylanguage', 'french');
                $this->db       = $this->load->database('fr', TRUE); 
            break;

            default:
                $this->lang     = $this->lang->load('mylanguage', 'english');
                $this->db       = $this->load->database('en', TRUE); 
            break;
        }
    }


}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 2015-11-20
    • 1970-01-01
    • 2020-12-25
    • 2015-09-14
    • 2012-11-27
    相关资源
    最近更新 更多