PhpStorm - 禁用一行的 SQL 检查

标签 phpstorm code-inspection

我正在使用 ZendDb没有带来所有调整的数据库适配器 SQL可以做。例如,如果我想做一个 REPLACE INTO我必须像这样编码:

$SQL = sprintf('REPLACE INTO %s (id, NAME, cache_id, compile_id, content) VALUES  (%s, %s, %s, %s, %s)' %
        array(self::TABLE_NAME, $id, $name, $cache_id, $compile_id));
$this->_zdb->query($SQL);

问题是 PhpStorm 告诉我 %s是 SQL 内部的错误。

当我尝试使用 Alt + Enter 对其进行修补时,我没有选择取消对此行的检查。

我需要这样的东西:
/** @noinspection SqlInspection */

我用谷歌搜索并找到 this页面,但似乎没有任何选项有帮助。

有任何想法吗?

最佳答案

添加 \%\w+模式到 Settings/Preferences | Tools | Database | User Parameters --它会告诉IDE处理这样的%s作为代码的动态/外部部分而不是实际的 SQL。

例如:

enter image description here

附言
有一天,这种模式将在 PhpStorm 中默认提供。

https://youtrack.jetbrains.com/issue/WI-39271 - 观看这张票(明星/投票/评论)以获取有关任何进展的通知。

如果您需要实际抑制.. 那么最有效的方法是将字符串视为纯文本而不是自动检测的 SQL。

为此,只需放置 /** @lang text*/就在字符串之前,例如

$sql = /** @lang text*/'REPLACE INTO %s (id, NAME, cache_id, compile_id, content) VALUES (%s, %s, %s, %s, %s)';

enter image description here

注意:如果您正在连接此类字符串或执行其他操作,则可能无法正常工作。

关于PhpStorm - 禁用一行的 SQL 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48147181/

相关文章:

php - 当 php 应用程序位于 Varnish 后面时使用 Xdebug

PhpStorm,关于 ftp 同步

PHPStorm - 使用数组进行类型提示

git - PhpStorm 默认 git 作者

PhpStorm 无法运行 PHP 代码 CodeSniffer

php - 如何停止此检查 : "Member has protected access, but class has magic method __get"?

rider - 如何在 Rider 中添加自定义代码检查规则

java - 依赖类型推断如何影响代码的可维护性?

html - Webstorm 代码检查无法解析服务文件