mysqli对象中的multi_query()方法

一次执行多条SQL命令使用mysqli对象中的multi_query()方法。

具体做法:

把多条SQL命令写在同一个字符串里作为参数传递给multi_query()方法,多条SQL之间使用分号(;)分隔。如果第一条命令在执行里没有出错,这个方法就会返回TRUE,否则返回FALSE 。

由于multi_query()方法能够连接执行一个或多个查询,而每条SQL命令都可能返回一个结果,在必要时需要获取每一个结果集。所以对该方法返回结果的处理也有一些变化,第一条查询命令的结果要用mysqli对象中的use_result()或store_result()方法来读取,当然,使用store_result()方法将全部结果立刻返回到客户端,这种做法效率更高。另外,可以用mysqli对象中的more_results()方法检查是否还有其他的结果集。

如果想对下一个结果集进行处理,应该调用mysqli对象中的next_results()方法,获取下一个结果集。这个方法返回TRUE或FALSE。

如果有下一个结果集,也需要使用use_result()或store_result()方法来读取。

执行多条SQL命令代码如下:

<?php

$mysqli=new mysqli("localhost","mysql_user","mysql_pwd","my_db_name");

/* check connection */

if($mysqli->mysql_connect_errno()){

printf ("连接失败:%s<br>",mysql_connect_error());

exit();

}

$query="SET NAMES GB2312;";

$query.="SELECT CURERENT_USER();"                            //获取使用连接的用户名

$query.="SELECT name,phone FROM contactinfo LIMIT 2";

/* execute multi query */

if($mysqli->multi_query($query)){

do{

if($result=$mysqli->store_result()){

//$mysqli->store_result() 获取第一个结果集

while($row=$result->fetch_row()){

foreach($row as $data){

echo $data."&nbsp;&nbsp;";

}

}

echo ‘<br>‘;

}

if($mysqli->more_results()){

echo "----------------------------<br>";

}

}while($mysqli->next_result());

}

/* close connection */

$mysqli->close();

?>

注:

在以上示例中,使用mysqli对象中的multi_query()方法一次执行三条SQL命令,获取多个结果集并从中遍历数据。如果在命令的处理过程中发生了错误,multi_query()和next_result()方法就会出现问题。

multi_query()方法的返回返回值,以及mysqli的属性errno、error、info等只与第一条SQL命令有关,无法判断第二条及以后的命令是否在执行时发生了错误。所以在执行multi_query()方法的返回值是TRUE时,并不意味着后续命令在执行时没有出错。

时间: 2024-07-30 10:18:36

mysqli对象中的multi_query()方法的相关文章

String对象中常用的方法

String对象中常用的方法 1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码.strObj.charCodeAt(index)说明:index将被处理字符的从零开始计数的编号.有效值为0到字符串长度减1的数字.如果指定位置没有字符,将返回NaN.例如:      var  str = "ABC";      str.charCodeAt(0);结果:652.fromCharCode方法从一些Unicode字符串中返回一个字符串.String.fromCh

window对象中的常见方法

<body><!-- window对象中的常见方法--><script type="text/javascript"> var timeid; function windowMethodDemo(){ //var b = confirm("你真的确定点击吗?"); //alert("b="+b); //setTimeout("alert('time run')",40); timeid=se

javascript各个对象中重要的方法

http://www.w3school.com.cn/jsref/index.asp 一,访问 HTML中元素的方法 1.document.getElementbyId("id1"),Html中,名称是id1的元素的对象.由于要求元素的id是唯一的,所以通过getElementId()方法获得的是一个对象,而不是一个数组. 2.document.getElementbyTagName("h1"),返回所有标签为<h1>的对象的集合(他的返回值是一个数组,

反射技术获取到对象中的指定方法

使用反射技术根据路径获取到对象对象.Class获取到class对象使用class对象通过getDeclaredFields()方法获取到目标类中的属性值集合Field[]使用class对象通过getDeclaredMethods方法获取到目标类中的方法集合public void Test(){User user = new User();Class clazz = user.getClass();Fiedld[] fields = clazz.getDeclaredFields();for(Fi

php 对象中连贯执行方法

连贯操作的重点是返回当前对象,以便可以继续执行 class Ceshi{ public $str = ''; public function f1($a){ $this->str .= $a; //连贯操作的重点是返回当前对象,以便可以继续执行 return $this; } public function f2($b){ $this->str .= $b; return $this; } public function get(){ return $this->str; } } $My

String对象中常用的方法有哪些?

1.length()字符串长度 String str="abc"; System.out.println(str.length()); //输出3 2.charAt()截取一个字符 3.equals() 和 equalsIgnoreCase() 比较两个字符串 4.toCharArray();//转变成字符数组 5.startsWith();endsWith();//前缀,后缀(开始,结束) 6.compareTo(); compareToIgnoreCase(); 7.indexOf

java 重写Object中的hashCode方法-----转载

1 hashCode()用于返回调用该方法的对象的散列码值,此方法将返回整数形式的散列码值. 2 在object类中,hashcode()方法是本地方法,返回的是对象的地址值,而object类中的equals()方法比较的也是两个对象的地址 值,如果equals()相等,说明两个对象地址值也相等,当然hashcode()也就相等了.一旦一个类重写equals()方法,通常也会重写 hashCode()方法. 3 4 下面是重写hashCode()方法的约定的内容,来自Object规范[JavaS

javascript 对象中的 handleEvent

在高级浏览器中,我们在绑定事件的时候 可以知道绑定一个对象,然后在这个对象中的 handleEvent 方法会自动进入指定的方法,不多说了举个例子吧!! var events = { handleEvent: function(event) { switch (event.type) { case 'touchstart': this.touchstart(event); break; case 'touchmove': this.touchmove(event); break; case 't

如何定制对象中特定字段的JSON输出内容

引言: 在Web应用开发中,经常需要将对象转化为JSON字符串的过程中,会有默认的输出内容不符合要求的情况,比如DateTime.一般可以通过定制Serializer来实现定制化的JSON字符输出. 1.  在对象中的getXXX方法中设置自定义的Serializer public class MyObject { private DateTime startDate; @JsonSerialize(using = DateTimeJsonSerializer.class) public Dat