#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. Не волнуйтесь, разобрались