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() - 检查批量查询中是否还有查询结果