t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

Теги: #<Tag:0x00007f748b495668>

Всем привет!

Подскажите пожалуйста как можно решить следующую проблему -
в приемочных тестах использую дамп базы в которой есть строки

LOCK TABLES `table1` WRITE;
/*!40000 ALTER TABLE `table1` DISABLE KEYS */;

INSERT INTO `table1` (`column1`, `column2`, `column3`, `column4`, `column5`, `column6`, `column7`)
VALUES
	('/',2,NULL,NULL,NULL,1476283621,1476283621),
	('/*',2,NULL,NULL,NULL,1455705738,1455705738),

так вот при запуске теста выдает ошибку синтакиса:

Db: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''' at line 4                                                                                                                                                                                                             
  SQL query being executed:                                                                                                                                                                                       
  INSERT INTO `table1` (`column1`, `column2`, `column3`, `column4`, `column5`, `column6`, `column7`)                                                                                                    
  VALUES                                                                                                                                                                                                          
  	('/',2,NULL,NULL,NULL,1476283621,1476283621),                                                                                                                                                                  
  	('

Если я правильно понимаю, то ошибка синтаксиса на значениях ‘/*’, так?
Но их в таком формате и нужно записать в таблицу, как это можно “побороть”?
Спасибо.

'/*' - попробуй варианты '\/*' или '/\*'

1 Симпатия

Спасибо, вариант с экранированием звещдочки помог.
Но сразу возникает вопрос - а не костыль ли это? :slight_smile:

Нет не костыль, погугли по поводу допустимых символах в SQL запросах в частности вставки строковых данных.

1 Симпатия