繁体   English   中英

使用Kohana PHP在2个数据库中选择

[英]Select in 2 databases with Kohana PHP

如何在Kohana中的不同数据库中联接表?

$tb_new = 'db_zaboo_feed.feed_' . $feed;
            $ids = DB::query(Database::SELECT, 
                             "SELECT d.fuid_id, d.user_id FROM db_zaboo.displays d
                             LEFT JOIN $tb_new f ON(d.fuid_id = f.uid)
                             WHERE d.user_id = (SELECT user_id FROM $tb_new GROUP BY user_id) AND f.uid IS NULL")->execute();

错误:

Database_Exception [ 1146 ]: Table 'db_zaboo.displays' doesn't exist [ SELECT d.fuid_id, d.user_id FROM db_zaboo.displays d LEFT JOIN db_zaboo_feed.feed_3 f ON(d.fuid_id = f.uid) WHERE d.user_id = (SELECT user_id FROM db_zaboo_feed.feed_3 GROUP BY user_id) AND f.uid IS NULL ]

要使用其他数据库配置组,请将名称或配置对象传递给execute()。

$结果= $查询->执行('config_name')

http://kohanaframework.org/3.0/guide/database/query/builder#executing http://kohanaframework.org/3.0/guide/database/config#connection-settings

这不是Kohana的特定问题。 这是一个MySQL问题。

为了在同一查询中对多个数据库进行操作,必须将表名与其数据库名一起使用。 如:

SELECT * FROM database1.table1 WHERE database1.table1.id IN (SELECT table1_id FROM database2.table2)

注意:通过按字面意义编写查询,我不确定Kohana的查询生成器是否可以像使用查询生成器的特定功能构建SQL查询那样来防止SQL注入攻击。 我会使用函数mysql_real_escape_string阻止它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM