簡體   English   中英

mysql update語句總是插入

[英]mysql update statement always inserts

我有這段代碼,如果數據庫中已經有$ mail,我想更新,如果沒有,則要插入,但是無論如何,它總是插入,如果該郵件已經存在,它會插入一條包含相同郵件的新行。 請幫助我,這是代碼:

<?php
session_start();
include '../conexion.php';

$nombre=$_POST['Nombre'];
$apellido=$_POST['Apellido'];
$mail=$_POST['Mail'];
$telefono=$_POST['Telefono'];
$ultimaventa=$_POST['Numeroventa'];
$totalcomprado=0;
$ultimomonto=$_POST['Total'];
$resultado=mysqli_query($con,"select * from clientes")or die(mysqli_error($con));
$existe=false;

while($f=mysqli_fetch_array($resultado)){
if($f['Mail']!=$mail){
    $totalcomprado=$ultimomonto;
    $existe=false;
    }else{
        if($f['Mail'==$mail]){
            $totalcomprado=$f['totalcomprado']+$ultimomonto; 
            $existe=true;
            }
    }
}


if($existe==false){
    mysqli_query($con,"insert into      clientes(nombre,apellido,Mail,telefono,ultimaventa,ultimomonto,totalcomprado)values(
    '".$nombre."','".$apellido."','".$mail."','".$telefono."','".$ultimaventa."','".$ultimomonto."','".$ultimomonto."')")or die(mysqli_error($con));
    }

if($existe==true){
    mysqli_query($con,"update clientes SET nombre='".$nombre."', apellido='".$apellido."',Mail='".$mail."',telefono='".$telefono."',ultimaventa='".$ultimaventa."',ultimomonto='".$ultimomonto."',totalcomprado='".$totalcomprado."' WHERE Mail='".$mail."'")or die(mysqli_error($con));
    }

如果不小心,您的if(bool) {} else if (!bool) {}很容易導致錯誤。 在這些情況下,只需使用else語句:

<?php
session_start();
include '../conexion.php';

$nombre        = $_POST['Nombre'];
$apellido      = $_POST['Apellido'];
$mail          = $_POST['Mail'];
$telefono      = $_POST['Telefono'];
$ultimaventa   = $_POST['Numeroventa'];
$totalcomprado = 0;
$ultimomonto   = $_POST['Total'];
$resultado = mysqli_query($con, "select 1 from clientes WHERE Mail='" . mysqli_real_escape_string($con, $mail) . "'") or die(mysqli_error($con));

$existe = mysqli_num_rows($resultado) > 0;

if ($existe) {
    mysqli_query($con, "UPDATE clientes SET nombre='" . $nombre . "', apellido='" . $apellido . "',Mail='" . $mail . "',telefono='" . $telefono . "',ultimaventa='" . $ultimaventa . "',ultimomonto='" . $ultimomonto . "',totalcomprado=totalcomprado+'" . mysqli_real_escape_string($con, $ultimomonto) . "' WHERE Mail='" . $mail . "'") or die(mysqli_error($con));
} else {
    mysqli_query($con, "INSERT INTO clientes(nombre, apellido, Mail, telefono, ultimaventa, ultimomonto, totalcomprado)values('" . $nombre . "','" . $apellido . "','" . $mail . "','" . $telefono . "','" . $ultimaventa . "','" . $ultimomonto . "','" . $ultimomonto . "')") or die(mysqli_error($con));
}

暫無
暫無

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

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