php - 为 SQL 参数提供占位符值

标签 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 提供占位符值,以便它再次提供自动完成建议?

我已在设置中尝试了数据库 -> 用户参数,但没有提示我输入占位符值。

我还知道我可以简单地将变量替换为正确的表名,调整 SQL,然后重新输入变量。但这似乎相当不专业,因为我认为 PhpStorm 可能会在这里提供解决方案。

此外,由于我已经在调整 SQL,所以我完全可以以更合适的方式重写该语句。对于这样一个相对较小的声明,我最终可能会这样做。然而,有更大的语句会占用大量时间来重写。

最佳答案

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

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

<小时/>

P.S. 如果您不喜欢这样的 SQL 错误(IDE 显示它们的事实),那么您可以告诉 IDE 将此字符串视为纯文本(因此没有 SQL 颜色/错误)--将 /** @lang Text */ 放在字符串左引号之前。

关于php - 为 SQL 参数提供占位符值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45235048/

相关文章:

phpunit - PhpStorm 中的代码覆盖率白名单/黑名单

php - 在 PhpStorm 中进行单行注释

php - 列出显示 index.php 的文件夹中的文件

php - 查看或不查看

php - 服务器在 WordPress 上表现不同的问题

php - 通过 PHP 更新 MySQL 中的 "order"列的最有效方法是什么

PhpStorm 插入和覆盖光标样式反转

php - 如何在 PHP 中获取今天的时间戳

PHP Codeigniter 上传失败,没有错误

mysql - 将数据库的第一个实例导出到第二个实例