Загадка мне это ... в цикле while($row = mysql_fetch_assoc($result) and $runningOK)
, если вместо используется оператор PHP &&
, тогда mysql_fetch_assoc
терпит неудачу и возвращает только число 1
при запуске.Почему этот цикл возвращает 1 при использовании && вместо 'и'?
Я пробовал mysql_fetch_array()
и на месте, и у меня все еще есть проблема 1
. Это когда и только тогда, когда я заменяю &&
на and
, как и текущий while
, вывод правильных строк.
Я поставил операторы отладки до, внутри и после, чтобы обеспечить это. Я хотел бы знать, является ли это причудой PHP или чем-то, что я не мог объяснить.
// Query
$selectQuery = "SELECT * FROM jobs_cache LIMIT 20";
// Run the Selection Query.
$result = mysql_query($selectQuery)
or die('Query Failed: '.mysql_error());
// Loop through results.
$runningOK = TRUE;
$resubmitList = array();
while($row = mysql_fetch_assoc($result) and $runningOK)
{
// Resubmit The Job
try
{
$client->addTaskBackground($row['function_name'],$row['job_data']);
$resubmitList[] = (string)$row['job_cache_id'];
}
catch(Exception $e)
{
echo "Error adding task for job id: " . $row['job_cache_id'];
$runningOK = FALSE;
}
}
Это снайпер из гораздо более крупного ядра рабочего Gearman, работа в порядке используется в нескольких разделах, чтобы гарантировать, что у нас есть действительные вызовы SQL и работоспособность. Какое замечательное и ясное объяснение приоритета! – Urda
Также решетки на 1000 репутации :) – Urda
Спасибо! Я праздную мороженое. – JAL