我正在使用 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。
例如:
附言
有一天,这种模式将在 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)';
注意:如果您正在连接此类字符串或执行其他操作,则可能无法正常工作。
关于PhpStorm - 禁用一行的 SQL 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48147181/