为SQL参数提供占位符值

时间:2017-07-21 10:15:02

标签: php mysql phpstorm

问题:

我正在使用一个框架,在许多方面提供的查询就像这样:

$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,我可以用更合适的方式重写语句。对于这样一个相对较小的陈述,我可能最终会这样做。然而,有更大的陈述会耗费大量时间来重写。

1 个答案:

答案 0 :(得分:1)

ATM无法做到这一点。我可能在这里错了...但是可能仅在最新2017.2版本中支持Joomla(考虑到它们的特定语法)..但没有其他通用方式(它适用于表名或表名)前缀)。

以下是关于此主题的一些相关门票 - 观看它们(明星/投票/评论)以获得有关任何进展的通知:

PS 如果您不喜欢这些SQL错误(IDE显示它们),那么您可以告诉IDE将此字符串视为纯文本(因此没有SQL颜色/错误) - 在字符串打开引号之前放置/** @lang Text */