Задать вопрос
  • Не работает запрос на вставку в БД. Как исправить?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Неудивительно что не работает. Тут неправильно примерно всё.

    1. Пробел нельзя вставлять в поле с автоинкрементом. Надо вставлять либо null либо вообще пропустить это поле.
    2. Переменные надо отправлять не напрямую, а через подстановки
    3. Ошибки никогда не надо выводить вручную, а надо оин раз настроить базу чтобы она сообщала об ошибках сама


    Код для соединения взять отсюда

    А сам запрос выполнять так:
    Все переменные надо заменить в запросе на знаки вопроса,
    затем подготовить запрос,
    привязать к нему переменные,
    и выполнить

    $query = "INSERT INTO `post` (`post_id`, `cat`, `title`, `keywords`, ...) 
    VALUES (null,?,?,?, ..., NOW(),?,?)";
    $stmt = $con->prepare($query);
    $stmt->bind_param("sss...", $cat,$title,$keywords, ...);
    $stmt->execute();
    echo "<p>Информация занесена в базу данных</p>";

    Количество знаков вопроса в запросе и количество букв "s" в первом параметре bind_param должно соответствовать количеству переменных.
    Ответ написан
    Комментировать