无法解析PhpStorm中的有效表

Par*_*ney 14 mysql phpstorm

unable to resolve table在包含SQL查询有效表的php文件中出现错误.

在此输入图像描述

如果我Ctrl + Enter通过查询,那么我在DB控制台中获得预期的结果,如果我在DB资源管理器选项卡中展开数据库,那么我可以看到这些表.

它不会影响代码执行,但它很烦人,因为它在编写代码时引起了我的注意,它掩盖了真正的SQL错误.

我已经尝试刷新数据库连接,并且我已经验证了php选项卡正在连接到正确的数据库.

小智 24

在2017.2我必须转到设置,语言和框架,SQL解决方案范围并在那里添加我的项目和数据库链接以使其再次正确

  • 还要检查“设置 > 语言和框架 > SQL 方言”,需要选择您使用的数据库。 (5认同)

Laz*_*One 12

尝试从头开始重新创建数据库连接(删除现有连接并再次创建).


考虑可能的原因......我可以想到这种情况:

  • 使用当前稳定版本的项目(目前为2016.1.x);
  • 在这个项目上为下一个版本(此时为2016.2)尝试EAP构建,并在那里进行一些与DB相关的更改(甚至是简单的同步DB);
  • 回到稳定版本(2016.1.x)..并且因为新版本对DB相关数据(缓存数据库结构等)使用较新的文件格式/版本控制IDE可能会开始忽略此类数据的"未知/更新"格式而不是抛出适当警告它只是"默默地"抛出"未解决的表"消息.

没有其他想法.


小智 12

我得到了 OP 得到的东西,问题是我的数据库服务器是 MariaDB,我选择了 MySQL 作为 SQL 方言。

请参阅文件 > 设置:语言和框架 > SQL 方言。

  • 谢谢,那让我发疯了!这也是我的问题,其他所有答案都没有做任何事情 (2认同)

WWW*_*ify 10

错误的错误污染也让我发疯!

如果我开始遇到 SQL 解析问题,我将检查我的解析范围(设置 -> 语言和框架 -> SQL 解析范围)。

通常,当我的项目映射默认设置为“所有数据源”时,我遇到的问题最多。

以下步骤总是为我修复它:

  • 单击项目映射下拉列表
  • 取消选中全局“所有数据源”设置(需要其他选项可用)
  • 单击数据库连接的下拉箭头
  • 检查“所有模式”(或特定表)
  • 单击确定关闭设置窗口

您的错误解析错误应该在下一个解析周期后消失。

您不限于将上述步骤仅应用于一个数据库连接,您可以对项目中的所有连接执行此操作。


有时添加自定义分辨率范围也会起作用,但对我来说是命中注定的。

  • 单击加号(右上角)
  • 选择您正在处理的文件并点击“确定”
  • 选择“解决范围”列
  • 取消选择“所有数据源”
  • 选择您想要的特定数据库资源

重新连接到数据库对我来说永远不起作用。

指定表格效果很好……但随着项目的发展,它会变得非常麻烦。


希望这可以帮助!


编辑:

我还遇到了另一种情况,即无论我使用什么范围解析设置,PHPStorm 都只会解决我的一些查询。但是,在我将控制台附加到我的文件后,它们解决得很好。(在“帮助”|“查找操作”中搜索“附加控制台”。您也可以将其添加到“快速列表”或键盘映射。)


Mic*_*uck 5

虽然这个答案是专门针对 phpstorm 的,但我在 IntelliJ 中遇到了同样的问题,而且上述修复程序都对我不起作用。我添加了范围,一切都处于活动状态。我可以在控制台窗口中很好地查询数据库,但我完全被难住了。

最终,我注意到数据库面板中的一些文字0 of 4用小文字表示。它看起来像这样:

显示 0 of 4 消息的数据库面板

单击0 of 4文本后,我发现没有向连接添加模式,即使最初建立连接时设置了默认数据库。转到该页面允许您添加模式。请务必选择“所有架构”、“当前架构”或您要用于连接的特定数据库。


Tia*_*ago 5

在全局和项目级别将方言更改为 MariaDB。

在此处输入图片说明

或者

在此处输入图片说明