簡體   English   中英

如何防止使用php在mysql中插入兩次相同的記錄

[英]how to prevent same record to be inserted twice in mysql using php

以下是我為不插入相同數據而編寫的代碼我希望如果記錄存在於mysql中那么它應該向我顯示錯誤消息,該記錄已經存在其他部分應該將記錄插入數據庫但是它不起作用可以任何一個幫助我PLZ的幫助將受到高度贊賞

function addcontact()
    {
        if(isset($_POST['addContact']))
        {
            $officeName = strip_tags($_POST['office_name']);
            $contactName = strip_tags($_POST['contactName']);
            $contactNo = strip_tags($_POST['contactNo']);
            $digitalNo = strip_tags($_POST['digitalNo']);
        $mobileNo = strip_tags($_POST['mobileNo']);

        $check="SELECT * FROM contacts WHERE office_name = '$officeName'";
        if(mysql_num_rows($check) != 0)
         {
            echo "Already in Exists<br/>";
        }else
                     {          
                        $sql = mysql_query("INSERT INTO contacts (office_name, contact_no, 
                          digital_no, mobile_no) VALUES 
                         ('$contactName','$contactNo','$digitalNo','$mobileNo')") or die(mysql_error());
        if($sql)
        {
            header("Location: index.php?admin&done");  exit;
        }
        else
        {
            header("Location: index.php?admin&failed");  exit;  
        }
    }
}
}

你這里弄錯了。

$check="SELECT * FROM contacts WHERE office_name = '$officeName'";
    if(mysql_num_rows($check) != 0)
     {
        echo "Already in Exists<br/>";
    }

只需添加mysql_query就好

$check=mysql_query("SELECT * FROM contacts WHERE office_name = '$officeName'");
    if(mysql_num_rows($check) != 0)
     {
        echo "Already in Exists<br/>";
    }

或者你也可以使用喜歡

    $name=$_POST['username'];

$q="select * from login where name='$name' ";
$rs=mysql_query($q);
if(mysql_fetch_row($rs)>0)
{
    echo "already exist";
}
else
{
    $msg="done";
}

添加ON Duplicate KEY Update。 這樣您就不需要檢查記錄是否已經存在,這意味着您不需要額外的選擇查詢來檢查。 如果它存在,沒有任何反應。

INSERT INTO contacts (office_name, contact_no, digital_no, mobile_no) 
VALUES ('$contactName','$contactNo','$digitalNo','$mobileNo')
ON DUPLICATE KEY UPDATE office_name = office_name

並將office_name設置為主鍵或唯一索引。

缺少一步,您的第一個查詢未執行,請嘗試以下方法: -

function addcontact()
{
    if(isset($_POST['addContact']))
    {
        $officeName = strip_tags($_POST['office_name']);
        $contactName = strip_tags($_POST['contactName']);
        $contactNo = strip_tags($_POST['contactNo']);
        $digitalNo = strip_tags($_POST['digitalNo']);
    $mobileNo = strip_tags($_POST['mobileNo']);

    $check= mysql_query("SELECT * FROM contacts WHERE office_name = '{$officeName}'");
    if(mysql_num_rows($check) != 0)
     {
        echo "Already in Exists<br/>";
    }else
                 {          
                    $sql = mysql_query("INSERT INTO contacts (office_name, contact_no, 
                      digital_no, mobile_no) VALUES 
                     ('$contactName','$contactNo','$digitalNo','$mobileNo')") or die(mysql_error());
    if($sql)
    {
        header("Location: index.php?admin&done");  exit;
    }
    else
    {
        header("Location: index.php?admin&failed");  exit;  
    }
}

}}

你可以從數據庫端處理它。 寫一個存儲過程,首先檢查天氣記錄是否在數據庫中,如果存在,則忽略它並返回文本“Record already exists”,如果不存在則將其插入表中。 在mysql中使用條件語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM