Конкатенация строк php, невидимый символ?

Есть 2 файла:
1) tbl_country.sql
2) tbl_city.sql

tbl_country.sql содержит:
INSERT INTO tbl_country (ID,COUNTRY) values (1,'Германия');
INSERT INTO tbl_country (ID,COUNTRY) values (2,'Австрия');

tbl_city.sql содержит:
INSERT INTO tbl_city (ID,CITY) values (1,'Лондон');
INSERT INTO tbl_city (ID,CITY) values (2,'Будапешт');

И есть php код, который их склеивает в 1 файл:
$countrySQL = file_get_contents('tbl_country.sql');
$citySQL = file_get_contents('tbl_city.sql');
$migrate = "";
$migrate .= $countrySQL.$citySQL;
file_put_contents('migrate.sql',$migrate);


Когда я пытаюсь скормить файл migrate.sql БД mysql, то выскакивает ошибка типа "неправильный синтаксис" аккурат между этими файлами. Хотя если скармливать по одному файлу, то данные нормально вставляются. Кодировка везде utf-8. Быть может, вставляется какой-либо символ при конкатенации? Как тогда его найти?

Thanks in advance

UPD: Когда открываю workbench и загружаю в него мой migrate.sql, то если поставить курсор на слиянии insert этих файлов(tbl_coutry и tbl_city) и нажать backspace, то удаляется какой-то невидимый символ и migrate.sql исполняется нормально без ошибок
  • Вопрос задан
  • 3737 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Проверьте на BOM
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
$migrate .= $countrySQL.PHP_EOL.$citySQL;
Ответ написан
Комментировать
xytop
@xytop
PHP/RoR web dev & tech lead
Скорее всего в конце одного из файлов(первого в конкатенации) не хватает точки с запятой.
А вообще mysql довольно конкретно ругаться должен, т.е. он должен выдать строку/часть строки с неверным синтаксисом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы