Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql Insert语句中重复记录的处理_Php_Mysql - Fatal编程技术网

Php mysql Insert语句中重复记录的处理

Php mysql Insert语句中重复记录的处理,php,mysql,Php,Mysql,Im我有一个php表单将数据输入mysql数据库,我的问题是如何处理重复记录例如,如果ID号已经存在,我如何检查是否存在,然后如果它确实抛出错误消息,例如expale说“ID已经在数据库中”,这里是一个insert语句的示例,但是,我希望它在进入之前检查数据库中的重复记录 $values = $_POST; foreach ($values as &$value) { $value = mysql_real_escape_string($value); } $sql1="INS

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

$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());
}

执行类似的选择:从load中选择count(loan_id),其中load_id=$values[loan_id] 如果结果>0,则不要插入并向用户提供错误消息“ID已在数据库中”,否则请插入它。

在“贷款ID”列中添加一个。当应用程序尝试插入另一个具有相同值的行时,MySQL将抛出错误

SQL将类似于:

CREATE UNIQUE INDEX loan_id_index ON table_name (loan_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) {
    if (mysql_errno() == 1586) {
        echo "ID is already in the database";
    } else {
        die('Invalid query: ' . mysql_error());
    }
}

E在插入前进行进一步检查,或执行并更新

检查

"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)";