无法解析SQL代码上的符号(PhpStorm问题)

无法解析SQL代码上的符号(PhpStorm问题),phpstorm,Phpstorm,我正在使用PhpStorm 2016.1.2,并且已经舒适地使用PhpStorm好几年了。我用数据库连接设置了Storm,并显示了PHP页面连接到的MySQL数据库。SQL通常通过数据库连接类在PHP页面中的自定义函数中编写 示例代码块: $checkData = $dataBaseSecure->getSelect( "SELECT check_login.fail_id, UNIX_TIMESTAMP(check_login.last_action) AS timer FROM che

我正在使用PhpStorm 2016.1.2,并且已经舒适地使用PhpStorm好几年了。我用数据库连接设置了Storm,并显示了PHP页面连接到的MySQL数据库。SQL通常通过数据库连接类在PHP页面中的自定义函数中编写

示例代码块:

$checkData = $dataBaseSecure->getSelect(
"SELECT check_login.fail_id, UNIX_TIMESTAMP(check_login.last_action) AS timer
FROM check_login WHERE check_login.ip_addr = ? AND check_login.check_drop = ? ",
 $data, TRUE);  
不要担心数据库PHP包装器,PHP中SQL的这种风格和布局已经在我的工作中出现了好几年了,在PhpStorm中,在服务器上和所有测试中都能完全准确地工作

截至昨天(2016年6月17日)

我不知道发生了什么变化,但PhpStorm现在突然告诉我,在我所有的SQL字符串上,在我所有的项目中:

无法解析符号“”

无法解析列“”

而且(由于这个原因),当我处理SQL代码时,PhpStorm不再执行任何自动完成或组织功能

我尝试过的解决方案

  • 我已经尝试根据以下内容使缓存失效并重新验证。但这没有帮助

  • 我已经非常仔细地研究了我的设置,但是PhpStorm数据库选项卡成功地连接到了数据库,据我所知,我没有做出任何改变来引起行为的改变

  • 我查看了PhpStorm首选项中的各种(和许多)设置,但没有看到任何关于这个问题的信息,或者我调整的更改没有解决这个问题

  • 我发现,但这似乎不适用,因为我的表名不是变量。我还发现,尽管2014年的数据表明存在类似的问题,但不是一个合适的解决方案

    • 在大多数项目中,我只有一个数据库连接,但如果出现此问题,数据库的数量似乎不会产生影响
  • 在命名实体周围使用适当的反勾号完全转义SQL查询并不能解决此问题

  • 我已将SQL方言正确配置为正确的MySQL

  • 阅读我在Stack Overflow上找到的相关文章并没有提供任何有用的信息


我在PhpStorm中没有与此问题或PHP/MySQL交互相关的插件

如果你对如何解决这个问题有任何想法,请告诉我。如果您有特定的首选项,请让我检查,我可以将它们添加到问题中(PhpStorm中有太多的首选项,我现在不会将它们全部发布在这里,因为我相信大多数与此问题无关)


关键是这个系统在两天前运行得很好

请尝试重新同步您的DB模式——以防万一它以某种方式损坏或无效

如果没有任何视觉效果,请尝试更激进的版本:

  • 关闭IDE
  • 打开此项目的
    .idea
    子文件夹(存储此项目设置的位置)
  • 删除
    dataSources.ids
    文件
  • 在IDE中重新打开项目
  • 重新同步数据库结构/从头开始重新创建数据库连接

    • 1)idea.log(
      Help |显示登录…
      )中有什么有趣的内容吗?2) 尝试禁用所有非捆绑插件3)退出PhpStorm;转到此项目的
      .idea
      子文件夹(此项目设置)并删除
      dataSources.ids
      文件;在PhpStorm中重新打开项目并重新同步数据库——更好吗?1)我看了一下,但没有看到任何东西,有一些连接返回
      -1
      ,但IDE中没有错误。我这里有一个bug报告:其中包含idea.log(不同的项目,相同的问题)。2) 试过了,没变。3) 这可能已经奏效了,我删除了数据库连接详细信息,并从头开始重建了它们,同时删除了
      .ids
      文件。这似乎已经修复了它,但是有两点:a)PhpStorm中的数据库选项卡现在一直在工作(圆圈图标),b)似乎很奇怪,我突然需要为每个项目都这样做。如果你对数据库选项卡上的Consent background work indicator有任何线索(如何计算它实际(尝试)要做什么?那太好了。如果你能添加第3点作为答案,我想这是一个解决方案(还有可能从零开始重新建立数据库连接)。虽然我仍然不清楚这是怎么发生的,可能是我的服务器人员做了一些更新或其他事情(我正在等待他们的回复邮件)@lazyone你说的“不断工作”是什么意思?有截图或更好的小屏幕吗?在这里对我来说似乎没问题(本地测试项目与本地MySQL连接)。我可能建议在这里也检查其他票证:。到目前为止,我完全不知道为什么会突然发生在你们所有的项目上(按照你的话)--对我来说,这必须是IDE范围内的一些更改(例如插件更新..或其他一些全局逻辑/设置).您是否定期备份IDE范围的配置?至于“忙指示器”--可能。也可能是您的连接设置(例如,从我从日志中看到,它通过SSH连接连接到DB..或错误的用户名/密码?)。通常(作为实验)--关闭该项目的IDE;backup.idea子文件夹并将其删除;打开IDE并指向该项目根文件夹--IDE将从这些源创建新项目;重新配置项目(至少是与DB相关的部分)然后看看它将如何运行。如果一切正常——看看它与备份副本可能有什么不同。重新同步架构不起作用,但是删除
      .ids
      ,然后建立一个新的数据源(具有相同的详细信息)did work.Tnx。对我来说,它也适用于2017.1.4-我删除了dataSources.ids,重新打开-不起作用。然后我复制了到DB的现有连接,并删除了旧连接-修复了它。(注意,删除旧连接时,您也会丢失。)