<reference> ожидаемый, неожиданный конец файла на PHPStorm

Я использую PHPStorm и обнаруживаю некоторые интересные ошибки / предупреждения. Не уверен, что я что-то пропустил. Вот запрос, например,

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

И я получаю это предупреждение: «ожидаемый, неожиданный конец файла» в первой строке кода. Есть ли что-нибудь, чего я не вижу в этом заявлении вставки, которое PHPStorm предупреждает меня?

Когда я запускаю код, я могу вставить запись без каких-либо проблем, но все-таки удивляться, может быть, может быть улучшение, которое мне не хватает.

После добавления вопроса я продолжил поиск и ударил аналогичную проблему в Stackoverflow, которая предлагала SQL Dialects. У параметра PHPStorm есть параметр в разделе «Настройки», я изменил его с MySQL на <SQL Keywords> и теперь он больше не предупреждает меня об этой ошибке. Просто убедитесь, что вы выбрали проект и изменили диалект так, чтобы все файлы внизу наследовали одни и те же диалекты.

Изменить: Как указано в комментариях, я изменил использование PDO. Решение выше просто избегало проблемы.

Добавление этого здесь, потому что другой ответ отключает проверку только повсюду, а не только для конкретного утверждения.

Эта проблема возникает из-за того, что редактор теряет контекст, когда оператор SQL разбивается на несколько строк.

Нет правильного способа игнорировать эту ошибку только для одного оператора в редакторе.

Эту проблему можно воспроизвести, включив проверки SQL и установив диалект для файлового проекта.

Одним из возможных способов решения проблемы является начало раскола вашего заявления.

Например, измените приведенный ниже

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

в

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

Это заставит PhpStorm думать, что ваш оператор – это просто другая строка вместо того, чтобы рассматривать его как SQL и выполнять проверку на нем.

Я понимаю, что могут быть другие способы писать заявления; однако этот ответ позволяет использовать стиль выражения в исходном вопросе при решении проблемы PhpStorm, помеченной ошибкой для конкретного оператора.