插入,获取id并同时插入

时间:2015-03-24 21:34:15

标签: php mysql mysqli

我有两个必须同时执行的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和英语专家)

2 个答案:

答案 0 :(得分:2)

$id = createCourse("Maths");
addHomeworkToCourse($id, "Resolve this equation"); 

让createCourse返回上一个插入id的课程的id。

php.net/manual/en/mysqli.insert-id.php

这也可以使添加HomeworkToCourse方法/功能更加健壮,并且能够在各种情况下使用

答案 1 :(得分:0)

使用mysql,您可以使用php函数mysqli_insert_iddocs)获取课程的最后插入ID,然后您可以添加作业。