dsh12544 2014-10-11 13:02
浏览 71
已采纳

使用PDO查询两个数据库

I'm trying to change my queries from mysql to PDO because I need to query at the same time two different databases on different servers.

I've done these classes so far

class Db extends PDO {

    public $db;

    public function __construct($dbhost = 'host1', $dbname = 'db1', $dbuser = 'user1', $dbpass = 'user2', $dbtype = 'mysql') {
        PDO::__construct($dbtype . ':host=' . $dbhost . ';dbname=' . $dbname, $dbuser, $dbpass);
    }

    function sql_query($sql) {
            $result = PDO::query($sql);

        return $result;
    }

    function sql_fetcharray($result) {
            $rs = $result->fetch(PDO::FETCH_ASSOC);

            return $rs;
    }

    function sql_numrows($result) {
            $rs = $result->rowCount();

        return $rs;
    }   
}

class Db2 extends Db {

    public $db;

    public function __construct($dbhost = 'host2', $dbname = 'db2', $dbuser = 'user2', $dbpass = 'pass2', $dbtype = 'mysql') {
        PDO::__construct($dbtype . ':host=' . $dbhost . ';dbname=' . $dbname, $dbuser, $dbpass);
    }

    function sql_query($sql) {
        parent::sql_query($sql);

        $result = PDO::query($sql);

        return $result;
    }

    function sql_fetcharray($result) {
        $rs = $result->fetch(PDO::FETCH_ASSOC);

        return $rs;
    }

    function sql_numrows($result) {
        $rs = $result->rowCount();

        return $rs;
    }   
}

and then

$db = new Db2;
$sql = "query";
$result = $db->sql_query($sql);

but the query affects only the second database.

Anyone can help?

Thanks a lot

  • 写回答

2条回答 默认 最新

  • douwanc63652 2014-10-11 13:05
    关注

    you had to run your query twice against two databases. don't expect the inheritance to do that for you

    $db = new Db2();
    $sql = "query";
    $result = $db->sql_query($sql);
    
    
     $db1 = new Db();
     $sql = "query";
     $result1 = $db1->sql_query($sql);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含