【问题标题】:Multiple database connection not working with new_link=TRUE and sql.safe_mode = OFF多个数据库连接不适用于 new_link=TRUE 和 sql.safe_mode = OFF
【发布时间】:2012-08-19 15:35:03
【问题描述】:

我正在尝试通过 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();   
       }
}

【问题讨论】:

    标签: php mysql sql mysql-connect


    【解决方案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();   
           }
    }
    

    【讨论】:

    • 是的,我知道。我所说的“全局”的意思是我的脚本在页面上的任何地方都有一个主连接,因此没有 $link 的 mysql_thread_id() 来获取这个主线程 ID(因此我称之为全局连接)和我正在使用的第二个连接$link 资源来获取我所谓的“本地”线程 id...
    • 现在我的问题是 mysql_thread_id() 返回的线程 ID 在 mysql_connect() 调用后等于 $local_thread_id 尽管 'new_link' 参数设置为 TRUE
    • 如果您有多个数据库连接,在与 mysql 对话时始终使用 $link 变量,我常用的方法是创建一个数据库类,我将 $link 设置为类变量。但是,如果您要修复所有 mysql 调用,您可能希望从 thous 旧的贬低函数转移到 PDO
    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多