我正在使用PHPStorm并出现一些有趣的错误/警告。不确定我是否跳过配置。 这是一个查询,例如,
$query = "INSERT INTO tblperson (";
$query .= " personName, personLname, personNumber, personPhone, personAttr";
$query .= ") VALUES (";
$query .= " '{$personName}', '{$personLname}', {$personNumber}, {$personPhone}, '{$personAttr}'";
$query .= ")";
我在代码的第一行收到此警告:“预期的,意外的文件结束”。在PHPStorm警告我的插入语句中是否有任何我遗漏的内容?
当我运行代码时,我可以毫无问题地插入记录,但仍然想知道可能会有一些我不知道的改进。
答案 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标记特定语句错误的问题。