Мне нужно сделать внутреннее соединение с вставкой в оператор. Мне нужно вставить данные в 2 таблицы, но идентификатор записей из второй таблицы также должен быть сохранен в столбце из первой таблицы.
первый раздел sql создает новую запись для каждого заданного имени dj в таблице dj, вторая часть должна получить идентификатор из добавленного dj и вставить его в столбец из «статей» таблицы.
$alle_djs = explode(', ', $this->djs); foreach ($alle_djs as $elke_dj) { $sql = "INSERT INTO dj (name) VALUES ( :name_dj )"; $st = $conn->prepare($sql); $st->bindValue( ":name_dj", $elke_dj, PDO::PARAM_STR ); $st->execute(); $sql2 = "INSERT INTO articles (dj_ids) SELECT id FROM dj WHERE name=:name_dj"; $st2 = $conn->prepare($sql2); $st2->bindValue( ":name_dj", $elke_dj, PDO::PARAM_STR ); $st2->execute(); } $conn = null
Используйте функцию LAST_INSERT_ID()
:
$sql2 = "INSERT INTO articles(dj_ids) VALUES (LAST_INSERT_ID())";