Данные не вставлены в базу данных php, mysql

Не могу вставить данные в БД. Когда я удаляю user_id, данные вставляются. Пожалуйста, проверьте мой код ниже и помогите мне.

function adddata($data) {
    global $db;
    if (is_array($data)) {
        $stmt = $db->prepare('INSERT INTO `pay` (id, payment, status, itemid, time, user_id) VALUES(?, ?, ?, ?, ?, ?');

        $userid = 2;
        $stmt->bind_param(
             'sdssss',
            $data['txn_id'],
            $data['payment_amount'],
            $data['payment_status'],
            $data['item_number'],
            date('Y-m-d H:i:s'),
            $userid
        );
        $stmt->execute();
        $stmt->close();
        return $db->insert_id;
        }
        return false;
        }

Думаю, что в ) отсутствует VALUES(?, ?, ?, ?, ?, ?');

Nigel Ren 14.11.2018 21:21

Это скорее проблема, связанная с опечаткой, чем просто отсутствующая скобка. Столбец "id" - это строковый столбец или целое число?

Funk Forty Niner 14.11.2018 21:30

сэр, это строковый столбец моего идентификатора.

Arsalan khatri 14.11.2018 21:32

Ваше значение id всегда одинаково? Потому что, если это первичный ключ, вы бы не вставляли.

Michael 14.11.2018 21:42

да, понял, спасибо Найджел Рен. скобка отсутствует в моем запросе. Имея также одну проблему, не могли бы вы решить? хотите передать $ _SESSION [идентификатор пользователя]; в мою переменную $ userid. когда я жестко запрограммировал значение в переменной $ userid, запрос выполняется успешно. но при передаче $ _SESSION [идентификатор пользователя] запрос не выполняется.

Arsalan khatri 14.11.2018 21:54
Стоит ли изучать 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 и хотите разрабатывать...
1
5
64
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Это тонко, но в вашей строке SQL отсутствует закрывающая скобка:

$stmt = $db->prepare('INSERT INTO `pay` (...) VALUES (?, ?, ?, ?, ?, ?)');

Где список VALUES не был должным образом закрыт.

включение исключений в mysqli может обнаружить и решить множество проблем, поэтому ошибки не так легко игнорировать. Это должно отображаться в ваших журналах как ошибка SQL.

Имея также одну проблему, не могли бы вы решить? хотите передать $ _SESSION [идентификатор пользователя]; в мою переменную $ userid. когда я жестко запрограммировал значение в переменной $ userid, запрос выполняется успешно. но при передаче $ _SESSION [идентификатор пользователя] запрос не выполняется

Arsalan khatri 14.11.2018 22:02

«Не выполнит» недостаточно подробно. Если вы можете быть более конкретными, например, точный текст ошибки, которую вы получаете, стоит открыть это как новый вопрос, где можно решить эту проблему.

tadman 14.11.2018 22:37

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