Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

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

codeception
Теги: #<Tag:0x00007fedc74b4620>

(Александр Мужичек) #1

Всем привет!

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

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),                                                                                                                                                                  
  	('

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


(Ray Romanov) #2

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


(Александр Мужичек) #3

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


(Ray Romanov) #4

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