首页 > 解决方案 > 如果条件正确,如何插入数据

问题描述

如果满足条件,如何从 FORM 将数据插入 mysql。

这些是我的代码。

$sql0检查是否已经存在类似的数据

$sql1向mysql插入数据

$wirebname   = mysqli_real_escape_string($conn, $_POST["wirebname"]);
$wireaccname = mysqli_real_escape_string($conn, $_POST["wireaccname"]);
$wireacno    = mysqli_real_escape_string($conn, $_POST["wireacno"]);
$wirebranchnumber = mysqli_real_escape_string($conn, $_POST["wirebranchnumber"]);
$swift       = mysqli_real_escape_string($conn, $_POST["swift"]);
$route       = mysqli_real_escape_string($conn, $_POST["route"]);
$state       = mysqli_real_escape_string($conn, $_POST["state"]);
$country     = mysqli_real_escape_string($conn, $_POST["country"]);

$id = $_SESSION['loggedIn_cust_id'];
$sql0 = "
    SELECT wire_benef_id 
    FROM wire_beneficiary".$id." 
    WHERE wirebname='".$wirebname."'
        AND wireaccname='".$wireaccname."'
        AND wireacno='".$wireacno."'
        AND swift='".$swift."'
        AND route='".$route."'
";

$result = $conn->query($sql0);

$success = 0;
if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    $wire_account_number = $row["wireacno"];

    if ($wireacno != $wire_account_number) {
        $sql1 = "INSERT INTO wire_beneficiary".$id." 
            VALUES(
                NULL,
                '$wirebname',
                '$wireaccname',
                '$wireacno',
                '$wirebranchnumber',
                '$swift',
                '$route',
                '$state'
                '$country',
                )
        ";

        if (($conn->query($sql1) === TRUE)) {
            $success = 1;
        }
    } else {
        $success = -1;
    }
}

如果帐号已经存在,我想打印一个错误

如果不是,则应将其写入数据库。

<?php
if ($success == 1) { ?>
    <p id="info"><?php echo "Beneficiary successfully added !\n"; ?></p>
<?php } ?>

标签: phpmysqldatabaseif-statementinsert

解决方案


您可以将数据库中的“帐号”列作为主键。因此,当您尝试从 db 插入相同的帐号时,您将获得主键违规异常。

(PRIMARY KEY 约束唯一标识表中的每条记录。主键必须包含 UNIQUE 值,并且不能包含 NULL 值。一张表只能有一个主键,可以由单个或多个字段组成。有关主键的参考来自this )

您可以使用该错误来设置插入是否成功。


推荐阅读