ThinkPHP 怎么实现跨数据库(同一服务器不同数据库)的关联查询(详细)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP 怎么实现跨数据库(同一服务器不同数据库)的关联查询(详细)相关的知识,希望对你有一定的参考价值。
参考技术A 定义一个空实例,在query里面写即可。 参考技术B 如果是mysql里面两个不同的数据库,应该是可以直接使用 [数据库名称].[表名]来关联的。TP指定的数据库,是因为他要缓存这个数据库的表字段等。你试试看行不行,我测试通过:SELECT a.*,b.* FROM table1 a
LEFT JOIN db2.table2 b
ON a.id=b.id WHERE 1
table1是当前数据的,联合db2数据库的table2查询。
jquery+thinkphp实现跨域抓取数据的方法
jquery的$.post发送数据到服务器后台,在由后台的PHP代码执行远程抓取,存到数据库ajax返回数据到前台,前台用JS接受数据并显示。
//远程抓取获取数据
$("#update_ac").click(function() {
$username = $("#username").text();
$("#AC,#rank,#Submit,#solved,#solved2,#solved3").ajaxStart(function(){
$(this).html("<span class=‘loading2‘> </span>");
});
$.post("update_ac/username/"+$username,{},function($data){
json = eval("(" + $data + ")");
$("#Submit").html(json.data.Submit);
$("#AC").html(json.data.AC);
$("#solved,#solved2,#solved3").html(json.data.solved);
$("#rank").html(json.data.rank);
}
),"json";
});
上面的jquery代码还算四楼比较清楚的,纠结我的就是那个json数据的接收
json = eval("(" + $data + ")");
//eval() 函数可计算某个字符串,并执行其中的的 javascript 代码。
其实这个都还是前台,跨域抓取是用php的扩展simple_html_dom完成的(不清楚的可以到网上去搜一搜,基于PHP5开发的)
把远程的页面抓取到本地。
import("@.ORG.simple_html_dom");
//thinkphp内导入扩展,你要把网上下载的代码改名为simple_html_dom.class.php放到APPNAME\Lib\ORG的目录下面
$html = file_get_html(‘http://openoj.awaysoft.com/JudgeOnline/userinfo.php?user=‘.$username); //远程抓取了
$ret = $html->find(‘center‘,0)->plaintext; //返回数据了。
如下所示:
<strong><span style="font-size:18px;">/*编号=年份后两位+月份+id四位数*/
$id = $this->student_model->save(0, $data);
$sn = date(‘Y‘, time());
$sn = substr($sn, -2);
$sn.= date(‘m‘, time());
$sn.=sprintf("%04d", $id);</span></strong>
以上是关于ThinkPHP 怎么实现跨数据库(同一服务器不同数据库)的关联查询(详细)的主要内容,如果未能解决你的问题,请参考以下文章