<reference> PHPStorm上预期的,意外的文件结尾</reference>

时间:2013-12-22 11:49:18

标签: php mysql phpstorm

我正在使用PHPStorm并出现一些有趣的错误/警告。不确定我是否跳过配置。 这是一个查询,例如,

$query  = "INSERT INTO tblperson (";
$query .= "  personName, personLname, personNumber, personPhone, personAttr";
$query .= ") VALUES (";
$query .= "  '{$personName}', '{$personLname}', {$personNumber}, {$personPhone}, '{$personAttr}'";
$query .= ")";

我在代码的第一行收到此警告:“预期的,意外的文件结束”。在PHPStorm警告我的插入语句中是否有任何我遗漏的内容?

当我运行代码时,我可以毫无问题地插入记录,但仍然想知道可能会有一些我不知道的改进。

2 个答案:

答案 0 :(得分:1)

在添加问题之后,我继续搜索并在Stackoverflow上遇到类似的问题,这是建议SQL方言。 PHPStorm在Preferences下有一个设置,我已经将它从MySQL改为<SQL Keywords>,现在它不再警告我这个错误了。 只需确保您已选择项目并更改方言,以便下面的所有文件都将继承相同的方言。

编辑:正如评论中所述,我改变了使用PDO。上面的解决方案只是避免了这个问题。

答案 1 :(得分:0)

在此处添加此内容,因为其他答案仅禁用所有地方的检查,而不仅仅是针对特定声明。

出现此问题是因为当SQL语句被拆分为多个字符串时,编辑器会丢失上下文。

对于编辑器中的单个语句,没有正确的方法可以实际忽略此错误。

通过启用SQL检查并为文件项目设置方言,可以重现此问题。

一种可能的解决方法是将语句的开头拆分。

例如,从

更改以下语句
$start = "INSERT IGNORE INTO table1(";
$mid = ") VALUES (";
$end = ")";

$start = "INSERT " . "IGNORE INTO table1(";
$mid = ") VALUES (";
$end = ")";

这会让PhpStorm认为你的语句只是另一个字符串而不是把它当作SQL并对它进行检查。

我意识到可能有其他方式来编写语句;但是,这个答案允许原始问题中的语句风格,同时解决了PhpStorm标记特定语句错误的问题。