thinkphp跨库操作

今天学了一个比较好的方法实现跨库操作。

只有thinkphp2.1以上版本适用。

首先创建一个模型类

[code lang=”php”]
<?php
class SMFtopicModel extends Model {
protected $tableName = "topics";
protected $tablePrefix = ‘smf_’;

}
?>
[/code]
声明表名,和前缀即可。

在Action 里面操作是这样:
这里的 C(‘SMF_CONN’)是数据库连接信息。
在config.php里面这样写 ‘SMF_CONN’=> ‘mysql://root:@127.0.0.1:3306/smfnew’,
[code lang=”php”]
function index(){
$this->checkLoginSession();
$tt = $_COOKIE[‘shanmaosmf’];
if($tt==1){
$id = $_GET[‘id’];
$smf = D(‘SMFtopic’);
$smf -> db(2,C(‘SMF_CONN’));
$data[‘id_topic’]=$id;
$list = $smf->where($data)->find();
//dump($list);
//dump($list);
if($_POST){………..
[/code]

这是一个方法片段。查询操作用thinkphp自带的就行

插入和更新操作不就行了。必须要这样。

[code lang=”php”]
$sql = "UPDATE `smf_topics` SET ……… WHERE id=$psid";
$re=$smf->query($sql);
if($re!==false){

$this->success(‘OK’);
}else{

$this->error(‘error’);
}
[/code]

这里是返回一个空数组,所以要注意了。返回判断成功与否。

好了先这样。