我有一个表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注入?