PHP mysqli_thread_id MySQLi 函数

  • 定义和用法

    mysqli_thread_id - 返回当前连接的线程 ID
  • 版本支持

    PHP4 PHP5 PHP7
    不支持 支持 支持
  • 语法

    mysqli_thread_id ( mysqli $link )
    
    mysqli_thread_id() 函数返回当前连接的线程 ID, 这个线程 ID 可以在 mysqli_kill() 函数中使用。 如果 PHP 到数据库的连接中断了, 然后使用 mysqli_ping() 函数重新建立连接的话, 新的连接的线程 ID 会发生改变。所以,仅在需要的时候,调用本函数获取连接的线程 ID。
    线程 ID 是每次连接都重新分配的,也就是说它和连接是紧密相关的, 如果某个连接异常断开了,然后重新建立了到数据库的连接, 这个线程 ID 就不再是原来的那个了,它会发生变化。 可以通过执行 SQL 语句:KILL QUERY processid 来杀掉对应连接上正在执行的 SQL 语句。
  • 参数

    参数 必需的 描述
    link mysqli_connect()mysqli_init() 返回的链接标识。
  • 返回值

    返回当前连接的线程 ID
  • 示例

    <?php
    $link = mysqli_connect("localhost", "my_user", "my_password", "world");
    
    /* 检查连接是否成功 */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    
    /* 获取连接的线程 ID */
    $thread_id = mysqli_thread_id($link);
    
    /* 杀掉这个连接 */
    mysqli_kill($link, $thread_id);
    
    /* 这句代码应该会报错 */
    if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
        printf("Error: %s\n", mysqli_error($link));
        exit;
    }
    
    /* close connection */
    mysqli_close($link);
    
  • 相关函数

    mysqli_kill() - 让服务器杀掉一个 MySQL 线程