Узел: вставить строку специальных символов в базу данных mysql

Я реализую аутентификацию по отпечатку пальца для своего приложения angular с использованием сервера node tcp в моем сценарии, биометрическое устройство возвращает строку специальных символов на мой сервер node, который включает специальные символы, такие как одиночные и двойные, такие как @#$'%", я хотел сохранить эту полную строку в базе данных с помощью одинарные и двойные кавычки. у меня следующий запрос

var fingerPrint = '@#$'%"'
db.query("insert into tbl_name (id, tempalte) value ('"+fingerPrint+"','')", (err, result)=>{
console.log(result)
}) 

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

Вместо ' используйте \'

B. Hel 26.10.2018 07:32

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

pradip shinde 26.10.2018 07:36

Хорошо, но '@#$'%"', это не работает. Вам нужно использовать '@#$\'%"'. Таким образом, js видит всех ваших персонажей.

B. Hel 26.10.2018 07:39

да, я знаю, но это самая большая проблема - хранить каждый символ в db

pradip shinde 26.10.2018 07:41

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

B. Hel 26.10.2018 07:44

дорогой, я знаю, что я прошу, это предложения, например, могу ли я преобразовать эту строку в буфер или blob что-нибудь подобное, я знаю, что этот escape-символ важен в этой ситуации, но у меня есть некоторые ограничения

pradip shinde 26.10.2018 07:56
1
6
1 381
2

Ответы 2

Пытаться

encodeURI() and decodeURI() it may work 

он изменит значение, потому что строка состоит из выражения отпечатка пальца, кодирующего uri, добавляем некоторые дополнительные поля в строку

pradip shinde 26.10.2018 07:38

Когда вы используете decodeuri, он даст исходную строку

saketh 26.10.2018 07:42

как encodeURI влияет на одинарные или двойные кавычки?

pradip shinde 26.10.2018 08:31

Вот один из способов сделать это, используя MySQL в NodeJs. Вот что можно попробовать:

let fingerPrint = `'@#$'%"'`;
let addQuery = "INSERT INTO tbl_name (id, template) VALUES (?,?)";
let values = [1, fingerPrint];

db.query(addQuery, values, function (err, result) {
   if (err) {
      return console.error(err.message);
   }
   console.log("Number of records inserted: " + result.affectedRows);
})

Другие вопросы по теме