Показать сообщение отдельно
  #14 (permalink)  
Старый 05.01.2017, 14:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от wadim
Экранировал 2 способами
$str= str_replace("'","\'",$str);

Экранируется вот так

$str= mysqli_real_escape_string($str);

А еще правильнее, в рамках mysqli и PDO использовать подготовленные запросы. Но, если речь о наборе чисел, то:

$a = [1, 2, 3];
echo json_encode($a); //[1, 2, 3] экранирование не требуется

$a = [1, "2", 3];
echo json_encode($a); //[1, "2", 3] нужно экранировать или
echo json_encode($a, JSON_NUMERIC_CHECK); //[1, 2, 3] экранирование не требуется

//но если данные извне и ожидаем только числа, то:
$a = array_map('intval', $a);
$json = json_encode($a);
//и с записью этой строки проблем не будет
"UPDATE table SET field='$json'"


Понял о какой задаче. Решать можно многое, но в данном случае большой кровью.

Последний раз редактировалось laimas, 05.01.2017 в 18:26.
Ответить с цитированием