0

私はphp関数から別のデータベースに接続しようとしています(別のデータベースへの現在の接続があると仮定しています)。以下に示すように、パラメータをTRUEに設定して使用mysql_connect()していnew_linkます。global_thread_id=16357138 local_thread_id=16357139 current_global=16357139mysql_connect()のTRUEにもかかわらず、次のコードが(ローカル接続が以前の接続をオーバーライドしたことを意味する)戻る可能性はどのようにありますか?

PHP設定でも、sql.safe_mode = OFF

// Class static method
static function Query($sql) {
       $global_thread_id = mysql_thread_id();
       if ($link = mysql_connect(FB_DB_HOST, FB_DB_USER, FB_DB_PASS, true)) 
       {
            $local_thread_id = mysql_thread_id($link);                          
            echo 'global_thread_id='.$global_thread_id.' local_thread_id='.$local_thread_id.' current_global='.mysql_thread_id();   
       }
}
4

1 に答える 1

1

mysql_thread_id()は、「グローバル」ではなく、最新のスレッドIDをフェッチします

mysql_thread_idのphpマニュアルには次のように書かれています。

現在のスレッドIDを取得します

// Class static method
static function Query($sql) {

       /* fetch latest thread id = global */
       $global_thread_id = mysql_thread_id();
       if ($link = mysql_connect(FB_DB_HOST, FB_DB_USER, FB_DB_PASS, true)) 
       {
            /* fetch thread id from $link */
            $local_thread_id = mysql_thread_id($link);

            /* echo 2 vars and the latest thread id = same as link */
            echo 'global_thread_id='.$global_thread_id.' local_thread_id='.$local_thread_id.' current_global='.mysql_thread_id();   
       }
}
于 2012-08-24T05:26:36.633 に答える