我正在尝试使用第一个查询的结果运行第二个查询,以为刚刚检索到的所有行设置一个标志。我第一次使用结果输出 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。为什么这只工作一次,而不是第二次。