为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用bind_result与get_result的示例

如何使用bind_result与get_result的示例

心有法竹 2019-07-25 19:10:20
如何使用bind_result与get_result的示例我想看一个如何调用使用bind_resultvs 的示例,以及get_result使用one over另一个的目的是什么。也是使用每个的利弊。使用任何一个的限制是什么,是否存在差异。
查看完整描述

3 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

您可以在相应的手册页上找到示例。

虽然赞成和缺点很简单:

  • get_result是处理结果的唯一理智方式

  • 但它并不总是可用,你的代码必须使用丑陋的bind_result进行后备。

无论如何,如果你的想法是在应用程序代码中使用任何一个函数 - 这个想法是错误的。然而,只要你将它们封装在一些方法中以从查询中返回数据,那么使用哪一个并不重要,除了你需要十倍的代码来实现bind_result这一事实。



查看完整回答
反对 回复 2019-07-25
?
慕村225694

TA贡献1880条经验 获得超4个赞

我注意到的主要区别在于,当您尝试在其他$ stmt中编译嵌套的$ stmt时,bind_result()会出现错误(正在获取)(不带):2014mysqli::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;}


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 2028 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信