У меня есть две функции PHP, которые должны выполняться одновременно. Мне нужно использовать две разные функции, потому что, например, я создаю курс в своем приложении и в то же время добавляю несколько домашних заданий для своих учеников. Вот мой упрощенный код:Вставить, получить идентификатор и вставить одновременно
function createCourse($courseName) {
global $mysqli,$db_table_prefix;
$stmt = $mysqli->prepare("INSERT INTO courses (name) VALUES (?)");
$stmt->bind_param("s", $courseName);
$result = $stmt->execute();
$stmt->close();
return $result;
}
function addHomeworkToCourse($homeworkDescription) {
global $mysqli,$db_table_prefix;
$course = "13"; // Here comes the problem: how do I get the ID inserted in the previous function
$stmt = $mysqli->prepare("INSERT INTO homework (course, description) VALUES (?, ?)");
$stmt->bind_param("is", $course, $homeworkDescription);
$result = $stmt->execute();
$stmt->close();
return $result;
}
и форма для создания курса и добавить некоторые домашние задания к нему в той же странице:
createCourse("Maths");
addHomeworkToCourse("Resolve this equation"); // Add some homework to "Maths"
Спасибо за ваше время! (Обратите внимание, что я не эксперт PHP, MySQL и английский)
и то, что вопрос? –
Могли бы вы изменить первую функцию, чтобы вернуть идентификатор последней строки, вставленной в случае успеха. Затем вы можете передать это значение во вторую функцию. http://php.net/manual/en/mysqli.insert-id.php. Вам нужно будет изменить вторую функцию, чтобы добавить еще один аргумент, который будет идентификатором курса, для которого вы добавляете описание домашней работы. – Maximus2012
@ Maximus2012 Я попробовал mysqli_insert_id, но ничего не ответил (я не знаю, что я делаю что-то не так) –