如何使用bind_result与get_result的示例我想看一个如何调用使用bind_resultvs 的示例,以及get_result使用one over另一个的目的是什么。也是使用每个的利弊。使用任何一个的限制是什么,是否存在差异。
3 回答
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
您可以在相应的手册页上找到示例。
虽然赞成和缺点很简单:
get_result是处理结果的唯一理智方式
但它并不总是可用,你的代码必须使用丑陋的bind_result进行后备。
无论如何,如果你的想法是在应用程序代码中使用任何一个函数 - 这个想法是错误的。然而,只要你将它们封装在一些方法中以从查询中返回数据,那么使用哪一个并不重要,除了你需要十倍的代码来实现bind_result这一事实。
慕村225694
TA贡献1880条经验 获得超4个赞
我注意到的主要区别在于,当您尝试在其他$ stmt中编译嵌套的$ stmt时,bind_result()
会出现错误(正在获取)(不带):2014
mysqli::store_result()
准备失败:(2014)命令不同步; 你现在不能运行这个命令
例:
主代码中使用的函数。
function GetUserName($id){ global $conn; $sql = "SELECT name FROM users WHERE id = ?"; if ($stmt = $conn->prepare($sql)) { $stmt->bind_param('i', $id); $stmt->execute(); $stmt->bind_result($name); while ($stmt->fetch()) { return $name; } $stmt->close(); } else { echo "Prepare failed: (" . $conn->errno . ") " . $conn->error; }}
主要代码。
$sql = "SELECT from_id, to_id, content FROM `direct_message` WHERE `to_id` = ?";if ($stmt = $conn->prepare($sql)) { $stmt->bind_param('i', $myID); /* execute statement */ $stmt->execute(); /* bind result variables */ $stmt->bind_result($from, $to, $text); /* fetch values */ while ($stmt->fetch()) { echo "<li>"; echo "<p>Message from: ".GetUserName($from)."</p>"; echo "<p>Message content: ".$text."</p>"; echo "</li>"; } /* close statement */ $stmt->close();} else { echo "Prepare failed: (" . $conn->errno . ") " . $conn->error;}
添加回答
举报
0/150
提交
取消