PhpStorm:添加SQL方言

时间:2017-02-23 10:13:31

标签: phpstorm

我们使用一个在工作中扩展Mysqli的类,它为预准备语句添加了另一种语法,如:

<?php
$req = MySQLiWrapperClass::getInstance()->prepare('
    INSERT INTO
        table
    SET
        field = :field_value:s
    ')
    ->bindNamedValue('field_value', 'stackOverflow')
    ->execute();

然后,在执行查询之前,该类将:field_value:s转换为?

问题是,当在PhpStorm中使用MySQL SQL方言时,此语法将触发错误,因为无法识别此语法。

有没有办法声明一个新的SQL Dialect,我可以在其中添加这个特定的语法?

1 个答案:

答案 0 :(得分:4)

  

有没有办法声明一个新的SQL Dialect,我可以在其中添加这个特定的语法?

您不能像那样添加自己的SQL Dialect(不能通过某些GUI配置)。

我的意思是:是的,你可以,但你必须将它编码为Java插件,做所有需要的东西 - 它会起作用。

您在这里遇到的问题与SQL Dialect 无关 - 您没有提供新的关键字或实际的查询语法(或类似的东西)。

您的代码中的问题是参数的自定义语法:field_value:s vs :field_value)。

这可以通过在Settings/Preferences | Tools | Database | User Parameters指定您自己的语法来解决:

  • 模式::(\w+\:[d|i|s])
  • 范围:PHP&amp; MySQL至少(基于您的代码示例)
  • 其中:literals至少

重要:规则的顺序也很重要。

以下是我的所作所为及其运作方式:

enter image description here