MySQL query - if not exists - insert into - else - update

Posted by user3180931 on Stack Overflow See other posts from Stack Overflow or by user3180931
Published on 2014-08-19T09:33:57Z Indexed on 2014/08/19 10:20 UTC
Read the original article Hit count: 239

Filed under:
|
|

I made a simple document generator by the form, this form saves everything to mysql database, It works great, but when someone type a the same 'nrumowy' it creates a new row in mysql, 'nrumowy' is unique, so when someone adds a form with the same 'nrumowy' I want to just update existing data in mysql, I have that code:

$con=mysqli_connect("localhost","login","pass","database");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// escape variables for security
$numerklienta = mysqli_real_escape_string($con, $_POST['numerklienta']);
$name = mysqli_real_escape_string($con, $_POST['name']);
$hours = mysqli_real_escape_string($con, $_POST['hours']);
$date = mysqli_real_escape_string($con, $_POST['date']);
$beginDate = mysqli_real_escape_string($con, $_POST['beginDate']);
$nrdomu = mysqli_real_escape_string($con, $_POST['nrdomu']);
$telefon = mysqli_real_escape_string($con, $_POST['telefon']);
$fax = mysqli_real_escape_string($con, $_POST['fax']);
$nip = mysqli_real_escape_string($con, $_POST['nip']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$stronawww = mysqli_real_escape_string($con, $_POST['stronawww']);
$branza = mysqli_real_escape_string($con, $_POST['branza']);
$vatkodpocztowy = mysqli_real_escape_string($con, $_POST['vatkodpocztowy']);
$vatmiejscowosc = mysqli_real_escape_string($con, $_POST['vatmiejscowosc']);
$vatulica = mysqli_real_escape_string($con, $_POST['vatulica']);
$vatnrdomu = mysqli_real_escape_string($con, $_POST['vatnrdomu']);
$vatemail = mysqli_real_escape_string($con, $_POST['vatemail']);
$vatosoba = mysqli_real_escape_string($con, $_POST['vatosoba']);
$datapublikacji = mysqli_real_escape_string($con, $_POST['datapublikacji']);
$rabat = mysqli_real_escape_string($con, $_POST['rabat']);
$wartoscnetto = mysqli_real_escape_string($con, $_POST['wartoscnetto']);
$typreklamy = mysqli_real_escape_string($con, $_POST['typreklamy']);
$inne = mysqli_real_escape_string($con, $_POST['inne']);
$inne2 = mysqli_real_escape_string($con, $_POST['inne2']);
$inne3 = mysqli_real_escape_string($con, $_POST['inne3']);
$zaliczka = mysqli_real_escape_string($con, $_POST['zaliczka']);
$liczbarat1 = mysqli_real_escape_string($con, $_POST['liczbarat1']);
$zaakceptowaneprzez = mysqli_real_escape_string($con, $_POST['zaakceptowaneprzez']);
$telzam = mysqli_real_escape_string($con, $_POST['telzam']);
$datapodpis = mysqli_real_escape_string($con, $_POST['datapodpis']);
$nrumowy = mysqli_real_escape_string($con, $_POST['nrumowy']);

$sql="IF
NOT EXISTS ( SELECT * FROM zam WHERE nrumowy = '$nrumowy' )

THEN

INSERT INTO zam (numerklienta, name, hours, date, beginDate, nrdomu, telefon, fax, nip, email, stronawww, branza, vatkodpocztowy, vatmiejscowosc, vatulica, vatnrdomu, vatemail, vatosoba, datapublikacji, rabat, wartoscnetto, typreklamy, inne, inne2, inne3, zaliczka, liczbarat1, zaakceptowaneprzez, telzam, datapodpis, nrumowy)
VALUES ('$numerklienta', '$name', '$hours', '$date', '$beginDate', '$nrdomu', '$telefon', '$fax', '$nip', '$email', '$stronawww', '$branza', '$vatkodpocztowy', '$vatmiejscowosc', '$vatulica', '$vatnrdomu', '$vatemail', '$vatosoba', '$datapublikacji', '$rabat', '$wartoscnetto', '$typreklamy', '$inne', '$inne2', '$inne3', '$zaliczka', '$liczbarat1', '$zaakceptowaneprzez', '$telzam', '$datapodpis', '$nrumowy' )

ELSE

UPDATE zam SET name = '$name', numerklienta = '$numerklienta', hours = '$hours', date = '$date', beginDate = '$beginDate', nrdomu = '$nrdomu', telefon = '$telefon', fax = '$fax', nip = '$nip', email = '$email', stronawww = '$stronawww', branza = '$branza', vatkodpocztowy = '$vatkodpocztowy', vatmiejscowosc = '$vatmiejscowosc', vatulica = '$vatulica', vatnrdomu = '$vatnrdomu', vatemail = '$vatemail', vatosoba = '$vatosoba', datapublikacji = '$datapublikacji', rabat = '$rabat', wartoscnetto = '$wartoscnetto', typreklamy = '$typreklamy', inne = '$inne', inne2 = '$inne2', inne3 = '$inne3', zaliczka = '$zaliczka', liczbarat1 = '$liczbarat1', zaakceptowaneprzez = '$zaakceptowaneprzez', telzam = '$telzam', datapodpis = '$datapodpis' WHERE nrumowy ='$nrumowy'

END IF";

if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}


mysqli_close($con);

This query without " select..... " and "else update" just a 'insert into' works great, also when I change this 'insert into' to 'update' but I don't know how to make this variable if not exists - insert into - else update

© Stack Overflow or respective owner

Related posts about php

Related posts about mysql