2017-10-21 103 views
-1

嗨,也許這個問題已經回答,但沒有任何幫助。(MYSQL)如何插入記錄只有當它不存在於表

我正在使用Mysql,我想在表中插入一些數據,但我想在插入之前檢查重複的記錄。

我對如何實現這一點很困惑。

我需要檢查,如果「RFC == $ Expediente和對角線== 10或對角線== 20」,顯示類似「記錄已經存在」, 或插入所有的數據,如果記錄不存在

這是我的腳本:

<?php 
$Person_name=$_POST['Person_name']; 
$Expediente=$_POST['Expediente']; 
$Sexo=$_POST['Sexo']; 
$Edad=$_POST['Edad']; 
$Domicilio=$_POST['Domicilio']; 
$numero=$_POST['Numero']; 
$colonia=$_POST['Colonia']; 
$Ciudad=$_POST['Ciudad']; 
$Parentesco=$_POST['Parentesco']; 
$ClinicaAds=$_POST['ClinicaAds']; 
$Dependencia=$_POST['Dependencia']; 
$Entidad=$_POST['Entidad']; 
$Foraneo=isset($_POST['Foraneo']) ? 1 : 0; 

$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "issste"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = " INSERT INTO paciente (RFC, Nombre, Sexo, FechaNacimiento, Calle, NumeroDomiciliario, Colonia, Ciudad, Dependencia, ClinicaAdscrip, Entidad, Foraneo, Diagonal) 
       SELECT '$Expediente', '$Person_name', '$Sexo', '$Edad', '$Domicilio', '$numero', '$colonia', '$Ciudad', '$Dependencia', '$ClinicaAds', '$Entidad', '$Foraneo', '$Parentesco' FROM paciente 
       WHERE NOT EXIST( 
       SELECT RFC, Diagonal FROM paciente WHERE RFC = '$Expediente' AND Diagonal='10' OR Diagonal='20') LIMIT 1 "; 

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
?> 

當我運行我的程序我得到這個錯誤

「你有你的SQL語法錯誤檢查對應於你的MySQL服務器版本的手冊」

+3

的可能的複製[?如何「插入如果不存在」在MySQL(https://stackoverflow.com/questions/1361340/how-to -insert-if-not-exists-in-mysql) – am05mhz

+0

你的標題詢問一件事,但你完成另一個問題。你的問題是什麼?重新出現錯誤信息,請閱讀並在[mcve]上執行。開始刪除代碼,直到沒有錯誤。在sqlfiddle.com或其他網站(谷歌)試試你的SQL。閱讀您正在嘗試使用的聲明的手冊。 Googel重新確認錯誤信息和號碼。 – philipxy

回答

0

修改您的查詢,嘗試這樣的事:

INSERT INTO paciente (RFC, Nombre, Sexo, FechaNacimiento, Calle, NumeroDomiciliario, 
      Colonia, Ciudad, Dependencia, ClinicaAdscrip, Entidad, Foraneo, Diagonal) 
    SELECT '$Expediente', '$Person_name', '$Sexo', '$Edad', '$Domicilio', '$numero', 
     '$colonia', '$Ciudad', '$Dependencia', '$ClinicaAds', '$Entidad', '$Foraneo', 
     '$Parentesco' 
    WHERE NOT EXISTS(SELECT RFC, Diagonal FROM paciente 
        WHERE RFC = '$Expediente' AND Diagonal='10' OR Diagonal='20' LIMIT 1)