我有一个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中完成吗?
我还想知道这可以在这个函数中使用两个不同的查询来完成,我已经尝试但它似乎不起作用。
答案 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?