猿问

如何使用bind_result与get_result的示例

如何使用bind_result与get_result的示例

我想看一个如何调用使用bind_resultvs 的示例,以及get_result使用one over另一个的目的是什么。

也是使用每个的利弊。

使用任何一个的限制是什么,是否存在差异。


心有法竹
浏览 2029回答 3
3回答

qq_遁去的一_1

您可以在相应的手册页上找到示例。虽然赞成和缺点很简单:get_result是处理结果的唯一理智方式但它并不总是可用,你的代码必须使用丑陋的bind_result进行后备。无论如何,如果你的想法是在应用程序代码中使用任何一个函数 - 这个想法是错误的。然而,只要你将它们封装在一些方法中以从查询中返回数据,那么使用哪一个并不重要,除了你需要十倍的代码来实现bind_result这一事实。

慕村225694

我注意到的主要区别在于,当您尝试在其他$ stmt中编译嵌套的$ stmt时,bind_result()会出现错误(正在获取)(不带):2014mysqli::store_result()准备失败:(2014)命令不同步;&nbsp;你现在不能运行这个命令例:主代码中使用的函数。function&nbsp;GetUserName($id){ &nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;$conn; &nbsp;&nbsp;&nbsp;&nbsp;$sql&nbsp;=&nbsp;"SELECT&nbsp;name&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;id&nbsp;=&nbsp;?"; &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($stmt&nbsp;=&nbsp;$conn->prepare($sql))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$stmt->bind_param('i',&nbsp;$id); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$stmt->execute(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$stmt->bind_result($name); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;($stmt->fetch())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$name; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$stmt->close(); &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"Prepare&nbsp;failed:&nbsp;("&nbsp;.&nbsp;$conn->errno&nbsp;.&nbsp;")&nbsp;"&nbsp;.&nbsp;$conn->error; &nbsp;&nbsp;&nbsp;&nbsp;}}主要代码。$sql&nbsp;=&nbsp;"SELECT&nbsp;from_id,&nbsp;to_id,&nbsp;content&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FROM&nbsp;`direct_message`&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;`to_id`&nbsp;=&nbsp;?";if&nbsp;($stmt&nbsp;=&nbsp;$conn->prepare($sql))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$stmt->bind_param('i',&nbsp;$myID); &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;execute&nbsp;statement&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;$stmt->execute(); &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;bind&nbsp;result&nbsp;variables&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;$stmt->bind_result($from,&nbsp;$to,&nbsp;$text); &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;fetch&nbsp;values&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;($stmt->fetch())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"<li>"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"<p>Message&nbsp;from:&nbsp;".GetUserName($from)."</p>"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"<p>Message&nbsp;content:&nbsp;".$text."</p>"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"</li>"; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;close&nbsp;statement&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;$stmt->close();}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"Prepare&nbsp;failed:&nbsp;("&nbsp;.&nbsp;$conn->errno&nbsp;.&nbsp;")&nbsp;"&nbsp;.&nbsp;$conn->error;}
随时随地看视频慕课网APP
我要回答