[英]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.