Рассмотрим чистый SQL запрос на обновление и избегайте циклов PHP. Поскольку вы, похоже, зацикливаетесь на другой выборке набора записей, выполните UPDATE...JOIN
поддерживаемый запрос *1001*, чтобы обновить записи в одной или нескольких таблицах. Некоторые корректировки, необходимые для достижения необходимого часового пояса. Ниже приведена демонстрация для вас:
// SET MYSQL SESSION TIME ZONE TO GMT
$sql = "SET TIME_ZONE = '+00:00';"
mysqli_query($conn, $sql);
// RUN UPDATE + JOIN WITH ADJUSTMENT FOR 'Asia/Taipei' TIME ZONE
$sql = "UPDATE productneeds p
INNER JOIN myotherTable t
ON p.myRelatedID = t.myRelatedID
SET p.Status = '已過期'
WHERE t.ExpeTime < NOW() + INTERVAL 8 HOUR";
mysqli_query($conn, $sql);