-1

関数でifステートメントを使用してmysqlibind_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'){
...     }
}
}
4

2 に答える 2

2

前回mysqliを使ってから本当に久しぶりですが、お手伝いさせていただきます。投稿されたコードから、スクリプト、クラス、または複数のクラスにいるのかどうかを理解するのは非常に困難です。

クラスにいる場合は、$thisを使用することを忘れないでください。bindは、変数ポインター/参照を渡すことを意味します。値ではなく、必要に応じて呼び出します。ループを終了すると、ポインターはnull位置に設定されます。特にクローズステートメントの後。

変数バインディングは、結果を関数に渡したい場合、またはより一般的には、受け取った値から新しい値を計算するコードブロックに渡したい場合にのみ使用する必要があります(新しい値を返すかどうかは関係ありません)。この場合、バインドされた結果を直接処理することを強くお勧めします。そうでない場合は、参照ではなく値で渡す必要があります。

この助けを願っています。

マルコ

于 2013-02-13T01:16:55.707 に答える
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) {
                            # ^^^^^^^
                ...
             }

         }
     }
}

コメントは回答されません。チュートリアルは存在します。

于 2013-02-13T03:39:01.820 に答える