插入新记录后更新列


Updating columns after a new record has been inserted

我有一个表book_assign,当插入新记录时,我想更新stud_id的先前条目并将列"status"设置为0。

 public function insert() {
    $stud_id = mysql_real_escape_string($this->stud_id);
    $teach_id = mysql_real_escape_string($this->teach_id);
    $book_id = mysql_real_escape_string($this->book_id);
    $status = mysql_real_escape_string($this->status);
    $dates = mysql_real_escape_string($this->dates);
    $rating = mysql_real_escape_string($this->rating);
    $comments = mysql_real_escape_string($this->comments);

    $insert = "Insert into book_assign(stud_id,teach_id, book_id, dates, status, rating, comments)
                values('$stud_id', '$teach_id', '$book_id', '$dates', '1', '$rating', '$comments')";

    $res = mysql_query($insert);
    $last_id = mysql_insert_id();
    return $res;
}

这是我到目前为止的代码,我相信我可能必须使用触发器,这必须在phpmyadmin中完成吗?

我还想知道的是,是否可以在此函数中使用两个不同的查询来完成此操作,我已经尝试过,但它似乎不起作用。

是的,你可以用两个查询。在插入后编写此查询:

update book_assign set status=0 where stud_id='$stud_id';

这也可以通过触发器来实现。您可以从phpmyadmin设置触发器。

请不要使用mysql_* 。它已被弃用并从 PHP 7 中删除。使用 mysqli_*PDO

此外,您的查询已打开以进行 sql 注入。请阅读:如何防止PHP中的SQL注入?