Php 防止表单中重复输入

Php 防止表单中重复输入,php,validation,Php,Validation,我有一个问题,这是我的代码,当我添加一个名称相同的新输入时,它会进入数据库,所以它是重复的。请帮忙 if(isset($_POST['submit'])) { //get the name and comment entered by user $nazov = $_POST['nazov']; //connect to the database $prip=mysqli_connect("xxx","xxx","xxx","xxx") or die('

我有一个问题,这是我的代码,当我添加一个名称相同的新输入时,它会进入数据库,所以它是重复的。请帮忙

  if(isset($_POST['submit']))
{

    //get the name and comment entered by user
    $nazov = $_POST['nazov'];


    //connect to the database
    $prip=mysqli_connect("xxx","xxx","xxx","xxx") or die('Error connecting to MySQL server');

    //insert results from the form input
    $sql = "INSERT IGNORE INTO trieda (nazov) VALUES('$_POST[nazov]')";

    $result = mysqli_query($prip, $sql) or die(mysqli_errno($prip) == 1062 ? "Trieda už existuje" : 'Chyba načítavania databázy.');

    mysqli_close($prip);
}

您可以在MYSQL数据库中设置要唯一的字段。所以,如果您尝试添加相同的值,您只会得到错误

您还可以先进行选择,然后在插入数据库之前检查数据库中是否存在数据


您可以使用惰性解决方案并使用REPLACE代替INSERT。替换更新它(如果存在),如果不存在则插入。

在插入之前检查数据库中是否有该值。您使用的是mysqli_*而不是准备好的语句。在数据库中,该列应该是唯一的索引,然后正确处理重复值的错误,或者可以在插入之前使用php检查重复值。您可以从表中获取数据,然后进行检查,或者可以使名称列在数据库中唯一。好的,我将其设置为唯一,并对代码进行了一些编辑,但它现在所做的是不会复制数据库中的数据,它工作得很好,但显示的文本不正确。每次添加记录时都会显示。如果mysqli_query$prip,$sql{echo$add;}否则{echo$not_add;}mysqli_close$prip;}Alireza,谢谢你的替换方案,我宁愿用另一个,我不想替换它作为将来的参考。。。