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: 284
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