我正在尝试从textarea表单中批量插入PHP中的一些数据,然后防止已有数据的重复。我试图编写一些东西但是现在它只是将我在textarea中插入的所有内容插入到列中相同的“值”中。但是我希望textarea中的每一行都在每个列中分开。
这是我到目前为止所做的,这可行,但它会插入整行:
<?php
include '../includes/config.php';
if (isset($_POST["data"])) {
$_POST["ban"] = $value;
$line_data = explode("\n", $_POST["data"]);
foreach ($line_data as $key => $value) {
$checkQuery = "SELECT ip FROM blacklist WHERE ip='" . $_POST["ip"] . "'";
$checkResult = mysqli_query($con, $checkQuery);
if (mysqli_num_rows($checkResult) != 0){
// do nothing
} else {
$sql = "INSERT IGNORE INTO blacklist (ip) VALUES ('{$value}')";
$result = mysqli_query($con, $sql);
}
}
}
?>
<form action="bulk.php" method="post">
<textarea type="text" name="data" placeholder="IP address"></textarea><br/>
<button type="submit" name="ban">Ban</button>
</form>
所以我的问题是,我做错了什么,有没有好办法处理这个问题?如果是这样,怎么样?
编辑:它现在插入了自己的列,但它仍然重复。就像数据库中存在数据一样,它仍然可以多次插入相同的东西。
答案 0 :(得分:0)
您可以将explode
用于将字段ip
中的值拆分为行。使用ip地址将每一行保存为db表blacklist