2017-10-21 105 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)