PHP mysqli_multi_query MySQLi 函数

  • 定义和用法

    mysqli_multi_query - 执行查询
  • 版本支持

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

    mysqli_multi_query ( mysqli $link , string $query )
    
    执行一个 SQL 语句,或者多个使用分号分隔的 SQL 语句。 要获得执行结果中的第一个结果集,请使用 mysqli_use_result()mysqli_store_result() 函数。 要读取后续的结果集, 请使用 mysqli_more_results()mysqli_next_result() 函数。
  • 参数

    参数 必需的 描述
    link mysqli_connect()mysqli_init() 返回的链接标识。
    query 查询语句。 查询语句中的数据一定要正确的进行转义(防止SQL注入)。
  • 返回值

    如果第一个 SQL 语句就失败了,返回 FALSE。 如果是批量执行 SQL 语句, 必须首先调用 mysqli_next_result() 函数,才可以获取后续语句的错误信息。
  • 示例

    <?php
    $link = mysqli_connect("localhost", "my_user", "my_password", "world");
    
    /* 检查连接 */
    if (mysqli_connect_errno()) {
       printf("Connect failed: %s\n", mysqli_connect_error());
       exit();
    }
    
    $query  = "SELECT CURRENT_USER();";
    $query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";
    
    /* 批量执行查询 */
    if (mysqli_multi_query($link, $query)) {
       do {
           /* store first result set */
           if ($result = mysqli_store_result($link)) {
               while ($row = mysqli_fetch_row($result)) {
                   printf("%s\n", $row[0]);
               }
               mysqli_free_result($result);
           }
           /* print divider */
           if (mysqli_more_results($link)) {
               printf("-----------------\n");
           }
       } while (mysqli_next_result($link));
    }
    
    /* 关闭连接 */
    mysqli_close($link);
    
  • 相关函数

    mysqli_query() - 对数据库执行一次查询
    mysqli_use_result() - 启动结果集检索
    mysqli_store_result() - 转移上一次查询返回的结果集
    mysqli_next_result() - 为读取 multi_query 执行之后的下一个结果集做准备
    mysqli_more_results() - 检查批量查询中是否还有查询结果