Получение идентификатора пользователя и присвоение его строке таблицы проекта 2x tables

#php #pdo

#php #pdo

Вопрос:

Может кто-нибудь пролить свет на то, что означают эти ошибки? Я учусь методом проб и ошибок, но не понимаю, как получить идентификатор из table1 (студенты), а затем вставить этот идентификатор в таблицу 2 (проекты) вместе с другими значениями.

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

 $project = "INSERT INTO projects(id, project_title, project_description, project_text)
            VALUES(:id, :project_title, :project_description,:project_text)
            SELECT id FROM students WHERE students.id=:id
            ON DUPLICATE KEY UPDATE id=:id";
            
 

Неустранимая ошибка: неперехваченное исключение PDOException: SQLSTATE[42000]: Синтаксическая ошибка или нарушение доступа: 1064 У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с ‘ВЫБЕРИТЕ идентификатор ИЗ студентов, ГДЕ students.id =? ПРИ ОБНОВЛЕНИИ ДУБЛИКАТА КЛЮЧА ‘ в строке 3 в /Applications/AMPPS/www/standout/start-project/step1.php:12 Трассировка стека: #0 /Applications/AMPPS/www/standout/start-project/step1.php (12): PDO-> подготовить(‘ВСТАВИТЬ В pro …’) #1 {main} добавлено /Applications/AMPPS/www/standout/start-project/step1.php настрока 12

Комментарии:

1. Зачем вам нужен доступ к таблице student , если вы просто выбираете id из этой таблицы, отфильтрованной по идентификатору? Что касается запроса: вы должны добавить тег СУБД, но для СУБД, которые я знаю insert ... values и insert ... select.. которые несовместимы, вы должны использовать только один из них. Предпочтительно insert ... select ... , чтобы убедиться, что вы не получите null в id столбце для несуществующего id

2. Спасибо за комментарий, поэтому ВЫБРАННЫЙ идентификатор из таблицы student будет неправильным? В принципе, я хочу, чтобы это было так, когда студент создает проект, чтобы проект, который он создает, был назначен только ему, а не какому-либо другому студенту. Я подумал, что нужно будет выбрать идентификатор из students, чтобы затем добавить этот идентификатор в таблицу projects, чтобы идентификатор students был назначен этому проекту? Это был бы неправильный способ сделать это?

3. Не волнуйтесь, разобрались