У меня похожая проблема с этой функцией.
Я использую скрипт для создания таблиц, которые требуются моему сайту, если функция table_exists () определяет, что какая-либо из требуемых таблиц отсутствует. Я продолжаю видеть странную проблему, когда при загрузке первой страницы несколько вставок в базу данных, кажется, не происходит. Я думал, что была проблема с моими операторами вставки, но я не мог найти единственную ошибку. Кроме того, после первой загрузки страницы все работало нормально. Оказывается, что скрипт создания таблицы вызывался несколько раз, каждый раз создавая пустую таблицу.
Я предполагаю, что результаты, возвращаемые несколькими вызовами table_exists (), не меняются в зависимости от таблиц, которые создаются после его вызова (в первый раз).
Я также пытался использовать решение, данное Шаяном Хусаини. list_tables (); также, кажется, отвечает так же. Он не вернет новые таблицы, созданные после его вызова.
Я в итоге исправил эту проблему, отслеживая каждую таблицу, созданную во время загрузки страницы. Тем не менее, я чувствую, что эти функции должны быть в состоянии найти новые таблицы, которые были добавлены в базу данных после того, как эти функции были вызваны один (или более) раз.