php 2つの别サーバーのデータベースのリソースをマッチング
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 2つの别サーバーのデータベースのリソースをマッチング相关的知识,希望对你有一定的参考价值。
<?php
/**
* 2つの別サーバーのデータベースのリソースをマッチング
*
* - MYSQL_ATTR_USE_BUFFERED_QUERY は 非バッファクエリにする為に
* - MySQLでなくても、2つのCSVやプレーンのファイルのマッチングでも応用可
**/
$db_global = new PDO("mysql:host=globalhost;dbname=db_global", 'user', 'password');
$db_global->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, FALSE);
$db_user = new PDO("mysql:host=userhost;dbname=db_user", 'user', 'password');
$db_user->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, FALSE);
$accounts = $db_global->query("SELECT * FROM account order by user_id");
$users = $db_user->query("SELECT * FROM user order by user_id");
if ( ! $accounts || ! $users)
{
exit(1);
}
$account = $accounts->fetch(PDO::FETCH_OBJ);
$user = $users->fetch(PDO::FETCH_OBJ);
$a = 0;
$u = 0;
$m = 0;
$t = 0;
while($account && $user)
{
if ( ! $account || $account->user_id > $user->user_id)
{
// user only
$user = $users->fetch(PDO::FETCH_OBJ);
++$u;
}
elseif ( ! $user || $account->user_id < $user->user_id)
{
// accont only
$account = $accounts->fetch(PDO::FETCH_OBJ);
++$a;
}
else
{
// match
$account = $accounts->fetch(PDO::FETCH_OBJ);
$user = $users->fetch(PDO::FETCH_OBJ);
++$m;
}
++$t;
}
echo "account only count: $a\n";
echo "user only count: $u\n";
echo "match count: $m\n";
echo "total count: $t\n"; // or $a + $u + $m;
以上是关于php 2つの别サーバーのデータベースのリソースをマッチング的主要内容,如果未能解决你的问题,请参考以下文章
sql データベースの管理
java 継承とインターフェースの使い方阶层が1つのポリモーフィズム
sh データベースをWP01 mysqldump的を使ってSQLファイルに书き出す。
markdown 动的な文字列リソースを使う
markdown 红宝石葡萄でネストしたリソースのAPI
sh 构筑后に降价形式でEC2のリソース情报を吐き出すスクリプト