Я делаю простой интернет-магазин для моего университетского проекта, который использует две таблицы из базы данных (пользователи и элементы). Я пытаюсь вставить в базу данных некоторую информацию о конкретном элементе. Последний столбец - это идентификатор зарегистрированного пользователя. Я делаю запрос, получая из таблицы «users» идентификатор фактически зарегистрированного пользователя. Когда я использую эту переменную ($ lastlogin), печать через echo показывает правильное значение. К сожалению, когда я пытаюсь вставить идентификатор в «элементы» таблицы с запросом на вставку, вместо правильного значения (например, 5) появляется 0. Кто-нибудь знает, как исправить мою проблему? Я буду благодарен.Вставьте правильное значение в таблицу базы данных вместо 0
$idlogin = "SELECT id FROM users WHERE login=:login";
$query = $db->prepare($idlogin);
$query->bindParam(":login", $_SESSION['login']);
$query->execute();
$row = $query->fetch(PDO::FETCH_ASSOC);
$lastlogin = $row["id"];
$sql = "INSERT INTO `items` VALUES (NULL, :name, :description, :cust_id)";
$params = [ ":name" => trim($_POST["name"]),
":description" => trim($_POST["description"]),
":cust_id" => '$lastlogin'];
$query = $db->prepare($sql);
$query->execute($params);
Есть ли несколько строк с одинаковым значением входа, но с разными идентификаторами пользователя? –
вы пробовали 'var_dump ($ lastlogin)', чтобы убедиться, что идентификатор пользователя определенно извлекается? – scottevans93
@SteveKnau - Нет, каждый логин уникален, я сделал проверку псевдонима в скрипте регистрации;) – Michal