【发布时间】:2021-06-29 01:04:59
【问题描述】:
我在数据库中有 3 个表。国家(国家/地区名称,国家/地区代码),用户(用户名,电子邮件,密码)和访问(国家/地区名称,用户名,评级)。 country_name 和 username 是visited 中的外键,它们必须是唯一的,例如如果有行:
'法国'| '用户' | 5
如果用户想要插入具有相同外键值的行:
'法国'|'用户'| 3
它应该只是更新评分,所以结果应该是这样的:
'法国'|'用户'| 3
我尝试这样做,但是当新用户插入新国家/地区时它不会做任何事情,在用户已经做了一个被忽略的插入后它工作正常,下一个插入很好。 例如,如果输入是:
'克罗地亚'|'用户'| 1
'柬埔寨'|'用户'| 3
数据库如下所示:
'柬埔寨'|'用户'| 3
这是我的 php 文件:
<?php
include "connection.php";
if(isset($_POST['country']) && isset($_POST['ratings']) && isset($_POST['username'])){
$country= $_POST['country'];
$ratings = $_POST['ratings'];
$username = $_SESSION['username'];
$result = $mysqli->query("INSERT INTO visited(country_name,rate,username)
VALUES('".$country."', '".$ratings."', '".$username."')
ON DUPLICATE KEY UPDATE
country_name= '".$country."',
username='".$username."',
rate='".$ratings."'");
echo "$country";
echo "$ratings";
echo "$username";
}
else{
echo "Error";
}
?>
【问题讨论】: