今天学了一个比较好的方法实现跨库操作。
只有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]
这里是返回一个空数组,所以要注意了。返回判断成功与否。
好了先这样。