PHP mysqli学习(四)多条SQL执行

核心函数:

mysqli::multi_query 面向对象
mysqli_multi_query 面向过程

可以执行一条或者多条SQL,当执行完全部SQL,或者遇到错误时停止。

用use_result()/store_result()方法,获取第一条查询所得的结果集

more_results() 检测是否有更多的结果集
next_result() 将结果集指针向下移动一位

 

<?php
$mysqli = @new mysqli("localhost:3306", "root", "root", "zhy");
if ($mysqli->connect_errno) {
    die("MYSQL CONNECT ERROR:" . $mysqli->connect_error);
}
$mysqli->set_charset('utf8');

$sql = "SELECT id, name FROM user WHERE id=1;";
$sql .= "SELECT * FROM mysql.user;";
$sql .= "SELECT NOW();";
//针对多条SQL语句的查询
if ($mysqli->multi_query($sql)) {
    do {
        //use_result()/store_result():获取第一条查询产生的结果集
        if($mysqli_result = $mysqli->store_result()){
            $rows[] = $mysqli_result->fetch_all(MYSQLI_ASSOC);
        }
        //more_results():检测是否有更多的结果集
        //next_result():将结果集指针向下移动一位
    } while ($mysqli->more_results() && $mysqli->next_result());
} else {
    echo "ERROR:" . $mysqli->error;
}

var_dump($rows);
$mysqli->close();

 

posted @ 2016-05-05 15:19  皎如飞镜临丹阙  阅读(864)  评论(0编辑  收藏  举报