0

我正在尝试使用第一个查询的结果运行第二个查询,以为刚刚检索到的所有行设置一个标志。我第一次使用结果输出 JSON 时它工作正常,但第二次尝试从中调用fetch_assoc()时,数组返回 NULL。

        $result = API::$connection->query($query);

        if (!mysqli_error(API::$connection))
        {
            API::setHeader(200);
            // return json encoded results

                        /// This works just fine, outputs JSON
            echo JSONizer::jsonEncodeSqlResultWithKeys( $result, array (
                                                                'pId',
                                                                'sender',
                                                                'receiver',
                                                                'content',
                                                                'notified',
                                                                'opened',
                                                                'time' ) );

            // initial update query
            $query = 'UPDATE messages
                    SET received=1
                    WHERE ';

            // start by cycling through each pId received and tack each onto query
            $counter = 0;

                            // this never runs because the associated array returns NULL now
            while ($row = mysqli_fetch_assoc($result));
            {
                $pId = $row['pId'];

                // concat query
                $query .= 'pId='.$pId;

                // if there's still more to go, tack on OR
                if ($counter++ != count($result))
                {
                    $query .= ' OR';
                }
                else 
                {
                    $query .= ';';
                }

            }

我在调用时尝试过对象和程序风格fetch_assoc,但没有任何区别。我尝试将结果复制到另一个变量中使用,但这也是 NULL。为什么这只工作一次,而不是第二次。

4

0 回答 0