PHP Foreach на MySQLi Результат набора

У меня есть этот кусок кода, который работает на моем локальном сервере тестирования XAMPP. Проблема в том, что при нажатии на производственный сервер он ломается. Это не проблема с соединением с базой данных, и PHP / MySQL оба находятся на уровне 5.3 на рабочем сервере, поэтому не используются старые версии. Я думаю, что это использование цикла foreach вместо более стандартного цикла while; если это так, почему?

<?php $res = $mysqli->query('DESCRIBE '.$table); $columnCount = 0; echo '<ul>'; foreach($res as $field) { if(in_array($field["Field"], $sheetData[0])) { echo '<li>'; //var_dump($field); echo $field['Field'].' - '.$field['Type']; echo "</li>\r\n"; $columnCount++; } } echo '</ul>'; ?> 

РЕДАКТИРОВАТЬ: Чтобы прояснить это, он ломается, не выводя ничего вообще; при вставке простого простого выражения в цикл, он, похоже, даже не выполняет его.

EDIT2: я добавил ниже ответ, в котором более подробно рассказывается, что на самом деле проблема, и почему этот код действительно работает при определенных условиях.