thinkphp M数据库无法切换

thinkphp M数据库无法切换,第1张

//切换新数据库

$model = M()

//(sql_type://username:password@address:3306/db_name)

//sql_type:数据库类型mysql或者mysqli

$result = $model->db(1,"sql_type://username:password@address:3306/db_name")

//sql语句

$query_sql = XXXXXX

//查询数据并返回

$data = $result->db(1)->query($query_sql)

$model= M("表名(无前缀)","数据表前缀_","mysql://用户名:密码@localhost:3306/数据库名")

        $arr=$model->select()

        print_r($arr)

我这样测试了 是可以的   你要检查你的格式是否正确

有两种情况,分析如下:

1、需要英文切换内容较少

假设我们现在正在 *** 作的是文章表,需要根据用户的语言环境输出中文或英文的文章内容。

在文章表中多添加一个字段用于存储英文的内容,发布文章的页面,同时上传中英文内容即可,然后服务端通过thinkphp的多语言标识来决定读取中文内容或者英文内容。也可以在前端模板中进行识别。

2、需要中英文切换内容较多

如果某个数据表的多个字段或者多个数据表都需要做中英文切换,显然在数据表里添加多个字段的方式就不太合适了,那将导致数据表字段太多,不方便管理,可以采用多数据表的方式,将内容完整的分为两份。就是把涉及到中英文切换的数据表多拷贝一份而已,里面的数据是英文的

。管理员后台,可以同时存储中英文内容,也可以分开存储,你自己决定就好,读取时同样使用thinkphp的多语言标识判断用户的语言环境,来决定查询中文表还是英文表。

另外,如果整站都需要中英文切换,也可以做分布式数据库!

一切根据实际需求决定!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9692064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存