问题:
我正在使用一个框架,在许多方面提供的查询就像这样:
$sql = "select $sArticleTable.* from table_A left join " .
"$sArticleTable on table_A.objectid=$sArticleTable.id " .
"where table_A.articlenid = $sArticleId " .
"and $sArticleTable.id is not null and " . $object->someMoreSQL() .
"order by table_A.sort";
如您所见,通过$sArticleTable
变量插入一个表名。即使我非常厌恶这种编写MySQL语句的方式,但现在我无能为力。
这种编写语句的方法可以防止PhpStorm正确识别表名,因此不会显示自动填充建议。
如何为PhpStorm提供变量$sArticleTable
的占位符值,以便它再次提供自动填充建议?
我在设置中尝试过Database -> User Parameters
,但系统不会提示我输入占位符值。
我也知道我可以简单地用正确的表名替换变量,调整SQL然后重新输入变量。但这似乎相当不专业,因为我认为PhpStorm可能会在这里提供解决方案。
此外,由于我已经在调整SQL,我可以用更合适的方式重写语句。对于这样一个相对较小的陈述,我可能最终会这样做。然而,有更大的陈述会耗费大量时间来重写。
答案 0 :(得分:1)
ATM无法做到这一点。我可能在这里错了...但是可能仅在最新2017.2版本中支持Joomla(考虑到它们的特定语法)..但没有其他通用方式(它适用于表名或表名)前缀)。
以下是关于此主题的一些相关门票 - 观看它们(明星/投票/评论)以获得有关任何进展的通知:
PS 如果您不喜欢这些SQL错误(IDE显示它们),那么您可以告诉IDE将此字符串视为纯文本(因此没有SQL颜色/错误) - 在字符串打开引号之前放置/** @lang Text */
。