Добрый день!
Автоматизирую процесс тестирования с Node.js и Selenium-wd.
Перед и после блоков тестов выполняются запросы к бд (создание предусловий или очистка бд).
Запросы хранятся в переменных в строковом виде.
Возникает проблема одинарых кавычек.
Поясню на примере:
needForReg = 'INSERT INTO `billing_payment_gateway` (--\
`id`, `name`, `route`, `description`, `is_active`, `is_deleted`--\
) VALUES (--\
1, 'interkassa', 'InterkassaGateway', '', 1, 0);'
Дойдя до 'interkassa' строка прервется и далее пойдет всякая ахинея.
Пока решила проблему экранированием кавычек:
needForReg = 'INSERT INTO `billing_payment_gateway` (--\
`id`, `name`, `route`, `description`, `is_active`, `is_deleted`--\
) VALUES (--\
1, \'interkassa\', \'InterkassaGateway\', \'\', 1, 0);'
Но это тольк часть запроса, и есть запросы куда более длинные, экранирование кавычек утомляет и вообще выглядит не очень.
Можно решить проблему элементарным заключением строки запроса в двойные кавычки. и мне это решение нравится.
needForReg = "INSERT INTO `billing_payment_gateway` (--\
`id`, `name`, `route`, `description`, `is_active`, `is_deleted`--\
) VALUES (--\
1, 'interkassa', 'InterkassaGateway', '', 1, 0);"
Но корректно ли оно? Что с безопасностью в таком случае? Или, может быть, есть решения для автоматического экранирования, если без него никак? Я в этом всем пока плаваю, знания очень поверхностные.