1

我需要防止我的 SQL 数据库中出现重复的学号。我不知道在哪里插入 php 代码来做到这一点。

/*
* Following code will create a new product row
* All product details are read from HTTP Post Request
*/

// array for JSON response
$response = array();

// check for required fields
if (isset($_POST['name']) && isset($_POST['studnum']) && isset($_POST['password'])) {

$name = $_POST['name'];
$studnum = $_POST['studnum'];
$password = $_POST['password'];

// include db connect class
require_once __DIR__ . '/db_connect.php';

// connecting to db
$db = new DB_CONNECT();

// mysql inserting a new row
$result = mysql_query("INSERT INTO products(name, studnum, password)     VALUES('$name','$studname', '$password')");

// check if row inserted or not
if ($result) {
    // successfully inserted into database
    $response["success"] = 1;
    $response["message"] = "Product successfully created.";

    // echoing JSON response
    echo json_encode($response);
} else {
    // failed to insert row
    $response["success"] = 0;
    $response["message"] = "Oops! An error occurred.";

    // echoing JSON response
    echo json_encode($response);
}


} 
else
{
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";

// echoing JSON response
echo json_encode($response);
}
?>
4

2 回答 2

2

add unique to some of the columns which you think can make unique record, then

$result = mysql_query("INSERT INTO products(name, studnum, password)     VALUES('$name','$studname', '$password') ON DUPLICATE KEY UPDATE studnum=VALUES(studnum)");

It will update the record and prevent you from showing duplicate error.

于 2013-08-19T11:09:26.890 回答
0

在您的数据库中运行以下 SQL 语句

alter table products add unique index(studnum);

这将告诉 mySQL studnum 字段应该是唯一的,如果创建了重复项,它将导致它给出错误消息。

于 2013-08-19T10:58:29.547 回答