Синтаксическая ошибка
$item_id = mysqli_real_escape_string($connect, $value['item_id'];
$item_qty = mysqli_real_escape_string($connect, $value['item_qty];
Отсутствует '
и )
2x
$item_id = mysqli_real_escape_string($connect, $value['item_id']);
$item_qty = mysqli_real_escape_string($connect, $value['item_qty']);
И измените это (это нормально, просто не лучший способ сделать это):
function save($array, $connect){
if(is_array($array)){
до
function save(array $array, $connect){
Теперь, если вы передадите что-то другое, тогда массив PHP с ошибкой выдаст.Он называется подсказкой типов и позволяет нам избавиться от этой проверки, поскольку мы гарантируем, что в качестве этого аргумента могут быть переданы только массивы.При ручной проверке ваш код просто молча провалится, и вы не будете знать, почему.
Я бы, вероятно, бросил туда if(!session_id()) session_start();
, чтобы быть в безопасности.Если идентификатор сеанса отсутствует, создайте сеанс.Вы не можете сохранить данные в сеансе, если он не запущен.
Вот так:
<?php
function save(array $array, $connect){
if(!session_id()) session_start();
//don't trust this who knows where it came from, QQ'n not me.
$id_person = mysqli_real_escape_string($connect, $_SESSION['person']);
foreach($array as $row => $value) {
$item_id = mysqli_real_escape_string($connect, $value['item_id']);
$item_qty = mysqli_real_escape_string($connect, $value['item_qty']);
$sql = "INSERT INTO tbl_order(id_person,item_id,qty) VALUES ('".$id_person."','".$item_id."','".$item_qty."')";
mysqli_query ($connect, $sql);
}
}
save($_SESSION['cart'], $ connect);
?>
-ПРИМЕЧАНИЕ. Также предпочтительнее готовить запросы, а не экранировать их.
Приветствия.