如果条目加倍会怎么办?
<?php
require_once('auth.php');
session_start();
$exam = $_SESSION['exam'];
$subject_id = $_SESSION['exam'];
$_SESSION['sub'] = $subject_id;
$subject_title = $_POST['subject_title'];
$subject_description = $_POST['subject_description'];
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('db_compre', $con);
$sql = "INSERT INTO examsubjectrecord_table(subject_id , subject_title ,
subject_description)
VALUES ('$subject_id','$subject_title', '$subject_description')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
else
{
header("location: addsubject.php?exam=".$exam ."");
}
?>`
Notice: A session had already been started - ignoring session_start() in C:\xampp\htdocs\compre\admin\addsubjectacc.php on line 4
**Error: Duplicate entry '1' for key 'PRIMARY'**
答案 0 :(得分:3)
这取决于你的应用程序业务逻辑。
您可以通过INSERT ... ON DUPLICATE KEY UPDATE ...
SQL语句通知用户有关重复的条目或以静默方式更新信息。
答案 1 :(得分:1)
在您的数据库中,您有一个subject_id
的主键,它不能重复。
如果您需要在subject_id
列中包含重复项,则应添加一列并将其设置为数据库中的主键。例如,添加另一列unique_id
并将其设置为auto_increment
并作为行标识的主键。
答案 2 :(得分:0)
基本上,您首先要检查您尝试插入主键字段的值是否已经存在。
因此,如果主键字段是subject_id,则需要通过执行选择查询以及PHP的mysql_num_rows
函数来检查是否已存在。例如:
$subject_id = 1337;
$check = mysql_query("SELECT `subject_id` FROM `examsubjectrecord_table` WHERE `subject_id`=" . $subject_id);
// See if anything was returned
if(mysql_num_rows($check) > 0) {
// We have something with this subject_id already!
echo "Cannot insert duplicate subject!";
} else {
// All clear, run your INSERT query here
}
答案 3 :(得分:0)
哪一列是您的主键?我假设那是subject_id
。这对于表中的每一行都必须是唯一的。确保这一点的最简单方法是使用AUTO_INCREMENT,然后避免插入subject_id
。它将自动分配。
如果您需要了解新主题的ID,可以使用mysql_insert_id
。