如果满足条件,如何从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 } ?>
答案 0 :(得分:1)
您正在使用无用的双重检查。当您通过if ($wireacno != $wire_account_number) {
查询检索所需的行时,select
始终返回false。如果它if ($result->num_rows > 0) {
返回true,则显然您的帐户已经存在,并且您不需要其他检查。所以尝试这段代码
if ($result->num_rows == 0) {
$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;
}
}
如上所述,您的代码容易受到攻击,可以通过sql注入尝试使用PDO或Prepared语句
答案 1 :(得分:0)
您可以将数据库中的“帐号”列作为主键。 因此,当您尝试插入相同的帐号时,将从db中获得一个违反主键的异常。
(PRIMARY KEY约束唯一标识表中的每个记录。 主键必须包含UNIQUE值,并且不能包含NULL值。 一个表只能有一个主键,它可以由单个或多个字段组成。请参阅this中的主键)
您可以使用该错误设置插入成功与否。