在两个独立的数据库中使用PDO SELECT JOIN

时间:2014-11-13 16:11:02

标签: php mysql wordpress pdo

我正在开发一个迁移插件,用于将数据从OSCommerce数据库移动到WooCommerce(Wordpress)数据库。对于我的大多数查询,我可以从OSCommerce数据库中选择并插入WP数据库而不会出现任何问题。但是,有一个查询似乎需要对每个数据库的表进行JOIN。我似乎不知道在谷歌搜索之后这是否可行,所以我在这里。这就是我所拥有的:

$os_connect = new PDO($os_connect_string, $os_username, $os_password);
$wp_connect = new PDO($wp_connect_string, $wp_username, $wp_password);

$os_statement = $os_connect->prepare("
    SELECT  categories_id+15
    FROM    categories
");

$os_statement->execute();
$os_result = $os_statement->fetchAll();

$wp_select = $wp_connect->prepare("
    SELECT  ID
    FROM    wp_posts
    WHERE   post_type = 'attachment'
    AND     post_parent = 0
");
$wp_select->execute();
$wp_result = $wp_select->fetchAll();

// INSERT data from both of the selects below

这种方法的问题在于,我得到了我需要的两件事,但却没有像我应该的那样按照正确的顺序。我需要使用的查询是:

INSERT INTO `redhillcutlery.com.mm-dev.net`.wp_woocommerce_termmeta(woocommerce_term_id, meta_key, meta_value)
    SELECT   os.categories_id+15, 'thumbnail_id', wp.ID
    FROM     `redhill_oscommerce`.categories AS os
    JOIN     `redhillcutlery.com.mm-dev.net`.wp_posts AS wp
    ON       os.categories_image = wp.post_title
    WHERE    wp.post_type = 'attachment'
    AND      wp.post_parent = 0

此查询正常工作,因为ON os.categories_image = wp.post_title部分确保正确的图像使其成为正确的类别,而不是我的PDO语句按顺序将它们提供给我并最终给我错误的图像。那么我有什么想法可以使这个JOIN语句有效吗?

0 个答案:

没有答案
相关问题