PhpStorm - 禁用 SQL 检查一行
PhpStorm - Disable SQL inspection for one line
我正在使用 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
视为代码的 dynamic/external 部分而不是实际 SQL.
例如:
P.S.
总有一天 PhpStorm 会默认提供这样的模式。
https://youtrack.jetbrains.com/issue/WI-39271 -- 观看这张票 (star/vote/comment) 以获得任何进展的通知。
如果您需要真正的抑制..那么最有效的方法是将字符串视为纯文本而不是自动检测 SQL。
为此,只需将 /** @lang text*/
放在字符串之前,例如
$sql = /** @lang text*/'REPLACE INTO %s (id, NAME, cache_id, compile_id, content) VALUES (%s, %s, %s, %s, %s)';
注意:如果您连接此类字符串或就地执行其他操作,则可能无法正常工作。
我正在使用 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
视为代码的 dynamic/external 部分而不是实际 SQL.
例如:
P.S. 总有一天 PhpStorm 会默认提供这样的模式。
https://youtrack.jetbrains.com/issue/WI-39271 -- 观看这张票 (star/vote/comment) 以获得任何进展的通知。
如果您需要真正的抑制..那么最有效的方法是将字符串视为纯文本而不是自动检测 SQL。
为此,只需将 /** @lang text*/
放在字符串之前,例如
$sql = /** @lang text*/'REPLACE INTO %s (id, NAME, cache_id, compile_id, content) VALUES (%s, %s, %s, %s, %s)';
注意:如果您连接此类字符串或就地执行其他操作,则可能无法正常工作。