SQL插入重复值

时间:2017-08-19 23:29:43

标签: php mysql sql

我试图在SQL表中插入数据,但它重复了这些值:

    $star1 = trim($_GET['star1']);
    $star2 = trim($_GET['star2']);
    $star3 = trim($_GET['star3']);
    $star4 = trim($_GET['star4']);
    $star5 = trim($_GET['star5']);

$conn = new mysqli($host, $user, $pass, $db);
    if ($conn->connect_error) {
        die("Desculpe.. Falha ao salvar ");
    } 

    $sql = "INSERT INTO classificacoes (nossa_empresa, produtos_oferecidos,atendimento, colaboradores, indicaria) VALUES ('$star1','$star2','$star3','$star4', '$star5')";
    $conn->query($sql); 
    if ($conn->query($sql) != TRUE){
        echo "Erro ao gravar";
    }
    else{
        echo "Gravou";
    }

    mysqli_close($conn);

即:代码在表中插入两个identincal值。

出了什么问题?

1 个答案:

答案 0 :(得分:1)

问题是你在两次运行查询:

 $conn->query($sql); 
 if ($conn->query($sql) != TRUE){

if行也在运行查询,因此您应该删除if上方的行。你的代码应该是这样的:

 $sql = "INSERT INTO classificacoes (nossa_empresa, produtos_oferecidos,atendimento, colaboradores, indicaria) VALUES ('$star1','$star2','$star3','$star4', '$star5')";
 if ($conn->query($sql) != TRUE){
     echo "Erro ao gravar";
 }

或另一种选择是在变量中获取查询结果,如下所示:

$sql = "INSERT INTO classificacoes (nossa_empresa, produtos_oferecidos,atendimento, colaboradores, indicaria) VALUES ('$star1','$star2','$star3','$star4', '$star5')";
$insertOK = $conn->query($sql)
if ($insertOK != TRUE){ // This is equal to if(!$insertOK){
    echo "Erro ao gravar";
}