在函数中,我想使用if语句查找mysqli bind_result()
变量if($qandaReplyType == 'Single'){
,但在尝试此操作时,我得到了一个未定义的变量。我看了一些SO示例,但我不理解如何正确地实现它。因此,我的问题是,有人能提供一个代码片段,以便能够修复错误,也让我了解如何在函数中检索mysqli变量以供将来使用,并让我充分理解应该如何编写它。
代码:
$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'){
...
}
}
}
尝试:
var $reply;
function ExpandOptionType($qandaReplyType) {
$this->reply = $qandaReplyType;
if($qandaReplyType == 'Single'){
...
}
}else if($qandaReplyType == 'Multiple'){
... }
}
}
我上次使用mysqli已经很久了,但我会尽力帮助你。如果你在一个脚本、一个类或多个类中,那么从你发布的代码来看真的很难理解。。
如果你在课堂上,不要忘记使用$this。bind意味着您传递变量指针/引用,根据自己的喜好调用它,而不是值,因此在退出循环的地方,指针被设置为空位置。特别是在结束发言之后。
只有当您想将结果传递给一个函数或更通用的代码块时,才应该使用变量绑定,该代码块将从收到的值开始计算新值(是否返回新值无关紧要)。在这种情况下,我真的邀请您直接处理绑定的结果,否则您应该通过值而不是引用来传递它们。
希望得到帮助。
Marco
以下是如何使用$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) {
# ^^^^^^^
...
}
}
}
}
评论将不予回复。教程确实存在。