0

我正在尝试从 php 函数连接不同的数据库(假设当前连接到另一个数据库)。我正在使用mysql_connect()参数new_link设置为 TRUE,如下所示。尽管 mysql_connect() 中为 TRUE,但以下代码如何返回global_thread_id=16357138 local_thread_id=16357139 current_global=16357139(意味着本地连接覆盖先前的连接)

同样在 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 回答