0

我有一个 php 表单来将数据输入到 mysql 数据库中,我的问题是我如何处理重复记录,例如如果 ID 号已经存在,我如何检查是否存在然后如果它确实抛出错误消息,用于 expale 说“ ID 已在数据库中”,这是插入语句的示例,但是我希望它在输入之前检查数据库中的重复记录

$values = $_POST;
foreach ($values as &$value) {
    $value = mysql_real_escape_string($value);
}

$sql1="INSERT INTO loan (loan_id)
VALUES ('$values[loan_id]')";

$result = mysql_query($sql1);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}
4

4 回答 4

1

只要在需要唯一的字段上有合适的 UNIQUE KEY 或 PRIMARY KEY,当您尝试插入重复记录时,您就会收到错误消息。然后,您可以在代码中测试此错误。

$values = $_POST;
foreach ($values as &$value) {
    $value = mysql_real_escape_string($value);
}

$sql1="INSERT INTO loan (loan_id) VALUES ('$values[loan_id]')";

$result = mysql_query($sql1);
if (!$result) {
    if (mysql_errno() == 1586) {
        echo "ID is already in the database";
    } else {
        die('Invalid query: ' . mysql_error());
    }
}
于 2012-04-15T14:31:13.433 回答
0

做一个选择: select count(loan_id) from load where load_id=$values[loan_id] than if result>0 don't insert and give error message "ID is already in the database" 给用户,否则插入它。

于 2012-04-15T14:30:11.523 回答
0

在loan_id 列上添加唯一索引约束。当您的应用程序尝试插入具有相同值的另一行时,MySQL 将抛出错误。

SQL 将类似于:

CREATE UNIQUE INDEX loan_id_index ON table_name (loan_id);
于 2012-04-15T14:30:17.217 回答
0

在插入或执行和更新之前检查。

查看

"SELECT COUNT(*) FROM loan WHERE loan_id = '" . $values['load_id'] . "'"

更新

"INSERT INTO loan (loan_id, some_field) VALUES ('". $values['loan_id'] ."', '". $values['some_field'] ."') ON DUPLICATE KEY UPDATE some_field = VALUES(some_field)";
于 2012-04-15T14:33:34.453 回答