如果记录不存在,我怎么才能插入记录?

Mat*_*ent 3 php mysql sql

我目前正在制作一个简单的IP禁止脚本,我正处于将IP地址插入数据库的阶段.我为此创建的HTML表单包含两个字段; IP地址和原因:

<td width="70%"><h4>Ban New IP:</h4>(Enter IP to be banned)</td>
    <td width="30%">
    <form method="post" action="">
     IP Address: <input type="text" id="ip" name="ip" autocomplete="off" maxlength="15" /><br /><br />
     Enter Reason: <input type="text" id="reason" name="reason" autocomplete="off" maxlength="255" /><br /><br />
     <input type="submit" id="submit" name="submit" value="Ban IP" /><br /><br />
Run Code Online (Sandbox Code Playgroud)

我的数据库包含一个标题为banned_ips三列的表id, ip and reason.我创建的插入语句完美无缺,但是我想查看IP是否已经存在.目前它只会插入IP,即使有一个匹配它.这是我目前的查询:

<?php

if ($_POST) {
    if ($_POST['ip'] != '') {
        if (strlen($_POST['ip']) <= 15) {
            $ip = $_POST['ip'];

            $ip_clean = htmlentities($ip);

            if (isset($ip_clean)) {
                // SQL insert
                $insert_ip = $db->prepare("INSERT INTO `banned_ips` (ip) VALUES (?)");
                $insert_ip->bind_param('s', $ip_clean);

                if ($insert_ip->execute()) {
                    // Successful insert
                    $_SESSION['successful_insert'] = 'Success';
                }
            }
        }
    }
}

 ?>
Run Code Online (Sandbox Code Playgroud)

我想要做的是在插入新IP时检查IP地址是否已经存在.我已经查看了有关stackoverflow的其他问题以及我看到的很多时间,WHERE NOT EXISTS但是我找到的没有显示任何带有预处理语句的示例.

med*_*eda 5

只是让ip场地成为一个独特的领域

mysql 然后会防止重复