复制php函数

复制php函数,php,mysql,database,function,codeigniter,Php,Mysql,Database,Function,Codeigniter,我的代码有问题。它总是重复输入。以下是我的功能: public function insert() { $con=mysqli_connect("127.0.0.1","root","","dbms_project"); if (!$con) { die('Could not connect: ' . mysql_error()); } $sql="INSER

我的代码有问题。它总是重复输入。以下是我的功能:

public function insert()
    {           
        $con=mysqli_connect("127.0.0.1","root","","dbms_project");
        if (!$con)
          {
          die('Could not connect: ' . mysql_error());
          }
        $sql="INSERT INTO customers (First_Name,Last_Name,Address,Phone)
                VALUES
        ('{$_POST['first_name']}','{$_POST['last_name']}','{$_POST['address']}','{$_POST['phone']}')";
        mysqli_query($con, $sql);
        if (!mysqli_query($con,$sql))
          {

          //redirect('home/customer');

          }
          $this->load->view('customer_view');
        mysqli_close($con);
    }
这是网站上的代码。我还尝试存储下一个值,将其用作customer_id的值:

             //using insert function
             <form action ="<?= site_url('home/insert')?>" class="formInsert" method="post">
             <td><button class="btn btn-xs btn-primary btn-block" type="submit" value="Login">+</button></td>
             <td>
             //i'm trying to put the output and use it to be the value of the customer id
             <?php $con=mysqli_connect("127.0.0.1","root","","dbms_project");
                // Check connection
                    if (mysqli_connect_errno())
                    {
                    echo "Failed to connect to MySQL: " . mysqli_connect_error();
                    }
                $result = mysqli_query($con,"SELECT max(Customer_ID) FROM customers");
                $lastvalue = mysqli_fetch_row($result);
                $resultlastvalue = $lastvalue[0] + 1;
                echo  " ". $resultlastvalue . " " ;?>
                </td>
             <td><input type="text" class="form-control" name="first_name" placeholder="First Name" required maxlength="40" autofocus /></td>
             <td><input type="text" class="form-control" name="last_name" placeholder="Last Name" required maxlength="40" autofocus /></td>          
             <td><input type="text" class="form-control" name="address" placeholder="Address" required maxlength="40" autofocus /></td>          
             <td><input type="text" class="form-control" name="phone" placeholder="Phone" required maxlength="40" autofocus /></td>          
             </form>
//使用插入函数

这将始终在页面刷新时插入重复记录。你需要稍微改变一下逻辑

  • 将名字、姓氏和电话输入3个变量
  • 连接到数据库
  • 使用SELECT查询检查这些是否存在
  • 如果是,则不运行INSERT查询
  • 如果没有,请插入
  • 我们需要这样的东西

    $select = " SELECT * FROM customers WHERE First_Name = '$_POST['first_name']' AND Last_Name = '$_POST['last_name']' AND Phone = '$_POST['phone']' ";
     $query = mysqli_query($select);
    
    if(mysqli_num_rows($query) > 0){
    
                    echo "User already exists";
                                      }
        else {
            $sql="INSERT INTO customers (First_Name,Last_Name,Address,Phone)
                VALUES ('{$_POST['first_name']}','{$_POST['last_name']}','{$_POST['address']}','{$_POST['phone']}')";
             }
    

    “它总是重复输入。”-哪一个?另外,您将MySQL API与
    MySQL\u error()
    混合使用。“每次我刷新页面时,它都会复制复制的值!”-错误。。。我不明白。数据库中的输出或输入重复?我正要编辑它。不管怎样,每次我用这个链接刷新它,它都会复制更多。如何复制?它在数据库中插入重复的条目?您正在执行两次
    mysql\u查询($sql,$con)
    。首先插入,然后插入
    的条件(如果
    )。您有重复记录是正常现象。请在受影响的列上设置唯一约束。
    “$\u POST['first\u name']”
    等将产生语法错误。它应该像OP现在拥有它一样
    “{$\u POST['first\u name']}”
    等等,正如您在下面的插入中所拥有的那样。但是,使用此方法对SQL注入是开放的。我们只提供了逻辑(插入前检查)。你想为你写完整的代码吗?这不是我的问题。我是那个试图帮助和改进答案的人。“现在,这是行不通的。”弗雷德。谢谢你无缘无故地否决了我们。想象一下,如果我们对你的答案也这么做,你怎么知道这是我的反对票?但事实并非如此,所以不要这么说。拿回去。我不是这里唯一的人。我甚至告诉过你怎么做来修复它,而其他人看到了你的答案。看到我评论的投票了吗?我不能推翻我自己的评论。