Не удалось разрешить действительную таблицу в PhpStorm

Я не могу unable to resolve table ошибки unable to resolve table появляющиеся в файлах php, содержащих SQL-запросы к действительным таблицам.

enter image description here

Если я Ctrl + Enter по запросу, то я получаю ожидаемые результаты в консоли БД, и если я разворачиваю базу данных на вкладке проводника БД, тогда я вижу таблицы.

Это не влияет на выполнение кода, но это раздражает, потому что это бросается в глаза при написании кода и маскирует реальные ошибки SQL.

Я попытался обновить соединение с базой данных, и я проверил, что вкладка php подключается к правильной базе данных.

Ответы

Ответ 1

Попробуйте повторно создать соединение с БД с нуля (удалите существующий и создайте его снова).


Думая о возможных причинах... Я могу думать об этом сценарии:

  • работа с проектом в текущей стабильной версии (в настоящее время 2016.1.х);
  • пытаясь собрать EAP для следующей версии (2016.2 в данный момент) в этом проекте и внести некоторые изменения, связанные с DB (даже простая синхронизация DB);
  • возвращаясь к стабильной версии (2016.1.x).. и потому что новая версия использует более новый формат файла/версию для данных, связанных с БД (структура кэшированной БД и т.д.). IDE может начать игнорировать формат "неизвестный/новый" для таких данных и вместо того, чтобы метать соответствующее предупреждение, которое он просто "молча" бросает сообщение "неразрешенная таблица".

Других идей нет.

Ответ 2

В 2017 году я должен был перейти к настройкам, языкам и рамкам, областям разрешений SQL и добавить ссылку на проект и базу данных, чтобы снова получить это право

Ответ 3

Неправильное загрязнение ошибок.

Если у меня возникнут проблемы с разрешением SQL, я проверю свои области разрешения (настройки → Языки и рамки → Области разрешения SQL).

Как правило, у меня есть большинство проблем, когда по умолчанию для моего сопоставления проектов установлено значение "Все источники данных".

Следующие шаги всегда исправляют это для меня:

  • Нажмите раскрывающееся меню "Сопоставление проектов"
  • Снимите отметку с глобального значения "Все источники данных" (требуется для выбора другого выбора)
  • Нажмите стрелку раскрывающегося списка для подключения к базе данных.
  • Проверьте "Все схемы" (или конкретные таблицы)
  • Нажмите "ОК", чтобы закрыть окно настроек.

Ошибки ложного разрешения должны исчезнуть после следующего цикла анализа.

Вы не ограничены применением вышеуказанных шагов только к одному соединению с БД, вы можете сделать это для всех подключений в своем проекте.


Иногда добавление области пользовательского разрешения также будет работать, но для меня это поразит или пропустит.

  • Щелкните знак плюса (вверху справа)
  • Выберите файл, над которым вы работаете, и нажмите "ОК"
  • Выберите столбец "Область разрешения"
  • Отменить выбор всех источников данных
  • Выберите нужные ресурсы БД

Повторное подключение к БД никогда не работает для меня.

Указание таблицы хорошо работает... но она может стать очень громоздкой по мере роста проекта.


Надеюсь это поможет!


РЕДАКТИРОВАТЬ:

Я также столкнулся с дополнительной ситуацией, когда PHPStorm разрешит только некоторые из моих запросов, независимо от того, какие настройки разрешения области я использовал. Однако, после того, как я подключил консоль к моему файлу, они решили все нормально. (Найдите "Attach Console" в справке | Найти действие. Вы также можете добавить его в "Быстрый список" или "Ключ-карту").

Ответ 4

Добавление имени базы данных до того, как имя таблицы сработало в моем случае.

Например, вместо написания SELECT * FROM Client, поместите SELECT * FROM database.Client.

Ответ 5

Хотя этот ответ специально для phpstorm, у меня была такая же проблема в IntelliJ, и ни одно из вышеперечисленных исправлений не помогло мне. Я добавил свою область, все было активно. Я мог запросить базу данных в окне консоли совершенно нормально, и я был совершенно в тупике.

В конце концов, я заметил какой-то текст на панели базы данных, который сказал 0 of 4 в крошечном тексте. Это выглядело так:

Database panel showing the 0 of 4 message

Нажав на текст " 0 of 4, я обнаружил, что схемы не были добавлены к соединению, даже если при установлении соединения была установлена база данных по умолчанию. Переход на эту страницу позволяет добавлять схемы. Обязательно выберите "Все схемы", "Текущая схема" или конкретную базу данных, которую вы хотите использовать со своим соединением.

Ответ 6

Чтобы отклонить эту ошибку в версиях PHPStorm до 2017 года, у которых нет параметра SQL Resolution Scopes:

  1. Перейти к файлу
  2. Перейти в настройки...
  3. Перейти в редактор, а затем проверки
  4. В главе SQL снимите флажок Неразрешенная ссылка
  5. Нажмите Применить, а затем ОК

Ответ 7

Я добавлю еще один ответ, потому что для меня это была совершенно другая (смущающая) причина:

Я почему-то забыл добавить имя базы данных в общие настройки источников данных (где вы также задаете хост, пользователя и пароль).