插入新记录后更新列

时间:2016-02-25 13:50:37

标签: php mysql database sql-update

我有一个book 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中完成吗?

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

1 个答案:

答案 0 :(得分:1)

是的,您可以使用两个查询。在插入后写下此查询:

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

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

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

此外,您的查询对sql注入是开放的。请阅读:How can I prevent SQL injection in PHP?