多个sql语句一起执行时,mysql::store_result是很好用的一个方法,下面的是实现代码:
//建立mysql连接
<?php
$mysqli = new mysqli("localhost", "root", "123456", "mysql");
if ($mysqli->connect_error) {
echo "failed connection".$mysqli->connect_error;
}
//设置编码方式
$mysqli->query('set names utf8');
$sqls='select * from user1;';//两条sql,会返回两个结果集,但$sql的写法要注意
$sqls.='select * from user2';
//如果执行成功,说明至少有一个结果集
if ($mysqli->multi_query($sqls)) {
do {
$res=$mysqli->store_result();//取出一个结果集,mysqli中有多个结果集
//if($res=$mysqli->store_result()){
while ($row=$res->fetch_row()) {
foreach($row as $key=> $value){
echo "--$value";
} //从每个结果集取行;
echo "<br />";
}
$res->free();
if(!$mysqli->more_results()){ //检查还有没有更多的结果集,若没有就结束
break;
}
echo "<br />******************新的结果集***************<br />";
}
while ($mysqli->next_result()); //下一个结果集,若没有则结束循环
}
?>