Ошибка запроса

Рейтинг: 0Ответов: 1Опубликовано: 22.10.2014

Привет. Такая проблема, при таком коде:

function save_order(){
    global $connection;
    $query = "INSERT INTO orders (`customer_id`, `date`, `dostavka_id`, `prim`)
                VALUES ($customer_id, NOW(), $dostavka_id, '$prim')";
    mysqli_query($connection, $query) or die(mysqli_error($connection));
    if(mysqli_affected_rows($connection) == -1){
        // если не получилось сохранить заказ - удаляем заказчика
        mysqli_query("DELETE FROM customers
                        WHERE customer_id = $customer_id AND login = ''");
        return false;
    }
    $order_id = mysqli_insert_id($connection); // ID сохраненного заказа

    foreach($_SESSION['cart'] as $goods_id => $value){
        $val .= "($order_id, $goods_id, {$value['qty']}),";    
    }
    $val = substr($val, 0, -1); // удаляем последнюю запятую

    $query = "INSERT INTO zakaz_tovar (orders_id, goods_id, quantity)
                VALUES $val";
    mysqli_query($connection, $query) or die(mysqli_error());
    if(mysqli_affected_rows($connection) == -1){
        // если не выгрузился заказа - удаляем заказчика (customers) и заказ (orders)
        mysqli_query("DELETE FROM orders WHERE order_id = $order_id");
        mysqli_query("DELETE FROM customers
                        WHERE customer_id = $customer_id AND login = ''");
        return false;
    }

    // если заказ выгрузился
    unset($_SESSION['cart']);
    unset($_SESSION['total_sum']);
    unset($_SESSION['total_quantity']);
    $_SESSION['order']['res'] = "<div class='success'>Спасибо за Ваш заказ.</div>";
    return true;
}

Выходит ошибка:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' NOW(), , '')' at line 2

То есть эта функция самостоятельного формирования даты и времени устарела? Как решить, помогите, пожалуйста.

Ответы

▲ 1

@Alextrue, Ошибка связана скорее всего с тем, что в $prim есть кавычки. Распечатайте текст запроса, посчитайте количество кавычек и запятых. Чтоб исправить и никогда больше не ошибаться, пользуйтесь параметрами.