Не могу вставить данные в БД. Когда я удаляю 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;
}
Это скорее проблема, связанная с опечаткой, чем просто отсутствующая скобка. Столбец "id" - это строковый столбец или целое число?
сэр, это строковый столбец моего идентификатора.
Ваше значение id всегда одинаково? Потому что, если это первичный ключ, вы бы не вставляли.
да, понял, спасибо Найджел Рен. скобка отсутствует в моем запросе. Имея также одну проблему, не могли бы вы решить? хотите передать $ _SESSION [идентификатор пользователя]; в мою переменную $ userid. когда я жестко запрограммировал значение в переменной $ userid, запрос выполняется успешно. но при передаче $ _SESSION [идентификатор пользователя] запрос не выполняется.






Это тонко, но в вашей строке SQL отсутствует закрывающая скобка:
$stmt = $db->prepare('INSERT INTO `pay` (...) VALUES (?, ?, ?, ?, ?, ?)');
Где список VALUES не был должным образом закрыт.
включение исключений в mysqli может обнаружить и решить множество проблем, поэтому ошибки не так легко игнорировать. Это должно отображаться в ваших журналах как ошибка SQL.
Имея также одну проблему, не могли бы вы решить? хотите передать $ _SESSION [идентификатор пользователя]; в мою переменную $ userid. когда я жестко запрограммировал значение в переменной $ userid, запрос выполняется успешно. но при передаче $ _SESSION [идентификатор пользователя] запрос не выполняется
«Не выполнит» недостаточно подробно. Если вы можете быть более конкретными, например, точный текст ошибки, которую вы получаете, стоит открыть это как новый вопрос, где можно решить эту проблему.
Думаю, что в
)отсутствуетVALUES(?, ?, ?, ?, ?, ?');