![](/img/trans.png)
[英]how to update a table and insert a new record to another table in one query?
[英]How to use UPDATE query to update another table
在Exam1表中,可以很好地添加ID,examname和exam_id值。 但是,当我尝试使用UPDATE查询将点更新到另一个表(问题)时,它不起作用。
for($i = 1; $i<$arraysize; $i++){ //For every question
$questionid = $array[$i]['questionid'];
$points = $array[$i]['points'];
$ID = $ID+1;
$queue ="INSERT INTO Exam1 (ID, examname, exam_id) VALUES
('$questionid','$examname', '$exam_id')";
$result = mysqli_query($connection,$queue);
$queue1 ="INSERT INTO points (ID, points) VALUES
( '$ID' , '$points')";
$result1 = mysqli_query($connection,$queue1);
$sql = "UPDATE Question SET points='$points' where ID ='$questionid'";
$result1 = mysqli_query($connection,$sql);
}
$myquery = "UPDATE Question SET points='$points' WHERE ID ='" . $questionid . "'";
$resultset = mysqli_query($connection, $myquery);
请尝试这个
首先要小心int
类型,并将其值放在UPDATE
和INSERT
并用引号引起来:发生类型强制转换,并且可能会导致结果,这是您可能无法预期的。
其次,理解您的数据库数据模型仍然很麻烦:您正在将Exam1.ID
与Question.ID
一起加入。 对我来说,两者似乎都是该实体的替代物。 否则,我将无法理解Exam_ID
列的Exam_ID
(在您的情况下很可能来自表Question
)。 因此,在我看来,您的UPDATE
语句的WHERE
子句不完整(您是否还打算限制EXAM_ID
?否则,无论考试如何,您都可能将所有问题的分数都设置为20。)
如果我弄错了,请提供有关数据库模式设置的详细概述,至少包括下表的主键:
Exam1
points
Question
以便我们进一步为您提供帮助(和我在此处调整答案)。 另外,我们还可以了解您如何看待表之间的外键关系,这可能有助于我们为您提供帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.