Нужна помощь в работе с массивом объектов в PHP?

помогите разобраться с такой задачей:
есть массив объектов
01: {goodname: "Anna", goodprice: "230", goodimg: "image/tovar1.jpg", count: 2}
02: {goodname: "Anna", goodprice: "310", goodimg: "image/tovar1.jpg", count: 1}
03: {goodname: "Anna", goodprice: "360", goodimg: "image/tovar1.jpg", count: 1}
нужно этот массив поместить в ячейку базы данных
пытаюсь сделать следующим образом
$cart = json_decode($data['cart'], true);
    $values = array();
    foreach($cart as $id =>$value ) {
        $value = sprintf(
            "('%s','%s','%s','%s')",
            $id,
            $cart[$id]['goodname'],
            $cart[$id]['goodprice'],
            $cart[$id]['count']
        );
        array_push($values, $value);
    }
    $values = implode(",", $values);

но моих знаний не хватает, для победы в этом вопросе
получаю ошибку
"Error updating record: 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 ....
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
Spartak-2205
@Spartak-2205
Разработка и создание сайтов
Mehannik,
"Error updating record: 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 '01','Anna','230','2'),('02','Anna','310','1'),('03','Anna','360',' at line 2


$sql = "INSERT INTO orders2020 (surname, name, fathername, cart)
VALUES ('$surname','$name','$fathername','$values')";


Если вы пытаетесь впихнуть $values в ячейку таблицы, значение которого содержит специальные символы (которые используются в выражениях SQL) , то их необходимо экранировать
//для mysql
$values = mysql_real_escape_string($values);

//для mysqli (процедурный стиль) 
$values = mysqli_real_escape_string($link, $values);

//для mysqli (объектно-ориентированный стиль) 
$values = $mysqli->real_escape_string($values);

// потом сам запрос
$sql = "INSERT INTO `orders2020` (`surname`, `name`, `fathername`, `cart`)
VALUES ('{$surname}', '{$name}', '{$fathername}', '{$values}')";
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы