如何在函数中检索mysqli变量

时间:2013-02-13 00:55:53

标签: php mysqli

在一个函数中,我想使用if语句来查找mysqli bind_result()变量if($qandaReplyType == 'Single'){但是在尝试这个时我得到一个未定义的变量。我查看了一些SO示例,但我不明白是否正确实现它。所以我的问题是,有人可以提供一个代码片段,以便能够修复错误,并且还可以让我看看如何在函数中检索mysqli变量以供将来使用,并让我充分了解它应该如何写入。

CODE:

$qandaquery = "SELECT q.QuestionId ReplyType
                            FROM QuestionId q
                            INNER JOIN Reply r ON q.ReplyId = r.ReplyId

        ...

            $qandaqrystmt->bind_result($qandaQuestionId,$qandaReplyType);

            $arrReplyType = array();


            while ($qandaqrystmt->fetch()) {

            $arrReplyType[ $qandaQuestionId ] = $qandaReplyType;
          }

            $qandaqrystmt->close();


        function ExpandOptionType($option) { 

        ...

             foreach($options as $indivOption) {

                 if($qandaReplyType == 'Single'){

        ...

                 }
                 else if ($qandaReplyType == 'Multiple'){

        ...
             }
          }

        }

ATTEMPT:

var $reply;
function ExpandOptionType($qandaReplyType) { 
    $this->reply = $qandaReplyType; 


         if($qandaReplyType == 'Single'){
...     

}
 }else if($qandaReplyType == 'Multiple'){
...     }
}
}

2 个答案:

答案 0 :(得分:2)

自从我上次使用mysqli以来,这是一段很长的时间,但我试着帮助你。 如果你在一个脚本,一个类或一个以上的类中,你发布的代码真的很难理解。

如果你在课堂上,别忘了使用$ this。 bind意味着您传递变量指针/引用,根据您的喜好调用它,而不是值,因此在您从循环中退出时,指针将设置为空位置。特别是在关闭声明之后。

只有当你想要将结果传递给一个函数或者更多地传递给一个代码块时才应该使用变量绑定,这个代码块会计算一个新的值(无论你是否返回新的值都没关系)收了一个。 在这种情况下,我真的邀请您直接处理绑定结果,否则您应该按值而不是通过引用传递它们。

希望得到这个帮助。

答案 1 :(得分:1)

以下是使用$this将变量从一种方法传输到另一种方法的方法。

class database {

     function do_query($id) {

          $result = db("SELECT * FROM tbl WHERE id=?", $id);

          $this->shared_result[] = $result["column"];
        # ^^^^^^^
     }


     function expand_evil($options) {

         foreach ($options as $whatever) {

             if ("Unicorn" == $this->shared_result) {
                            # ^^^^^^^
                ...
             }

         }
     }
}

评论将无法解答。教程确实存在。