Невозможно вставить строку в базу данных

Mukesh Aryal спросил: 28 марта 2018 в 02:00 в: javascript

У меня есть json, который выглядит следующим образом:

{
  first_name: "ammaam",
  last_name: "mamamama",
  birth_date: "1950-1-3",
  birth_date_in_string: "03 January 1950",
  email_address: "aryalmukesh60m@gmail.com",
  ...
}

И затем у меня есть почтовый запрос, в который я отправляю json на страницу php.

Тогда у меня есть sql, который выглядит следующим образом:

UPDATE users SET user_json = {"first_name":"ammaam","last_name":"mamamama","birth_date":"1950-1-3","birth_date_in_string":"03 January 1950","email_address":"aryalmukesh60m@gmail.com","password":"827ccb0eea8a706c4c34a16891f84e7b","profession":"amammamama","gender":"male","age":"68","bio":"mamamamamamammamamammamamamamammamamamamamammamamamamamamammamamamamamammamamamamammamamamamamamam","profile_picture":"..\/Images\/male_profile_picture.png","full_name":"ammaam mamamama","joined_date":"2018-04-21","joined_date_in_string":"21 April 2018","address":"","nickname":""} WHERE id = 23

Все связанные с подключением материалы в порядке и когда я проверяю тип переменной с помощью gettype($variable) , он показывает строку, но я не могу выполнить запрос.

Может ли кто-нибудь определить проблему?


1 ответ

ashutoshagrawal1010 ответил: 28 марта 2018 в 02:14

Сгенерированный запрос должен иметь значение user_json в виде строки. Запрос должен быть

UPDATE users SET user_json = '{"first_name":"ammaam","last_name":"mamamama","birth_date":"1950-1-3","birth_date_in_string":"03 January 1950","email_address":"aryalmukesh60m@gmail.com","password":"827ccb0eea8a706c4c34a16891f84e7b","profession":"amammamama","gender":"male","age":"68","bio":"mamamamamamammamamammamamamamammamamamamamammamamamamamamammamamamamamammamamamamammamamamamamamam","profile_picture":"..\/Images\/male_profile_picture.png","full_name":"ammaam mamamama","joined_date":"2018-04-21","joined_date_in_string":"21 April 2018","address":"","nickname":""}' WHERE id = 23

Отметить одиночную кавычку (') в запросе в моем ответе выше

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

См. Https://www.w3schools.com/php/php_mysql_prepared_statements.asp для получения справки о подготовленных выражениях в PHP.