Вставки базы данных не работают и не выдают ошибок

Я не могу вставить данные в базу данных, я вообще не получаю ошибок, но таблица все еще кажется пустой.

Я использую WAMP для разработки.

Любая помощь приветствуется.

Ниже моего кода:

<?php
    session_start();

    $servername = "localhost";
    $username = "admin";
    $password = "admin";
    $dbname = "cookies";

    $conn = mysqli_connect($servername, $username, $password, $dbname);

    if (!$conn) {
       die(mysqli_connect_error());
    }

    function test_input($data) { 
       $data = trim($data);
       $data = stripslashes($data);
       $data = htmlspecialchars($data);
       return $data;
    }

    $nombre = test_input($_SESSION["nombre"]);
    $telefono = test_input($_SESSION["telefono"]);
    $entrega = test_input($_SESSION["entrega"]);
    $fecha_entrega = test_input($_SESSION["fecha_entrega"]);
    $direccion = test_input($_SESSION["direccion"]);
    $prod = test_input($_SESSION["prod"]);
    $cant = test_input($_SESSION["cant"]);

    $sql = "INSERT INTO ventas (prod, cant, nombre, telefono, direccion, fecha_entrega) VALUES ('$prod', '$cant', '$nombre, $telefono', '$direccion', '$fecha_entrega')";

    mysqli_query($conn, $sql);

    mysqli_close($conn);
?>

Вы должны проверить результат вашего запроса: if (!mysqli_query($conn, $sql)) echo mysqli_error($conn);

Nick 10.08.2018 01:50

спасибо тебе тоже Ник, я сначала прочитал ответ Клаудио, но твой ответ был бы таким же правильным, как и его.

Minnen 10.08.2018 02:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
2
58
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете проверить ошибки mysqli_query() с помощью функции mysqli_error().

В целях разработки вы можете добавить его в свой код, то есть mysqli_query($conn, $sql) or exit(mysqli_error($conn));, чтобы видеть ошибки, сообщаемые вашей базой данных.

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

Я согласен с тем, что ошибки SQL не должны сообщаться пользователям, но можно использовать error_log(), чтобы ошибки SQL попадали в журнал http, чтобы администраторы сайта могли их видеть.

Bill Karwin 10.08.2018 02:16

Ваше предложение помогло мне решить эту проблему, было две проблемы, первая отсутствовала '' в некоторых полях в значении, а также одно из полей было слишком длинным для столбца db, спасибо.

Minnen 10.08.2018 02:19

Попробуйте это, отлично работает

  $sql = "INSERT INTO ventas (prod, cant, nombre, telefono, direccion, fecha_entrega) VALUES ('$prod', '$cant', '$nombre', '$telefono', '$direccion', '$fecha_entrega')";

Другие вопросы по теме