php - Define UNIQUE key constraint for the table -


i have implemented code insert , update data in database when try new row's data being inserted in table , not being updated how can define unique key in case work? have primary key id.

<?php  $json = '{"latitude":53.86898451,"longitude":10.66561387,"route":4}';  $data = json_decode ( $json );  $route = "route_" . $data->{'route'}; $latitude = $data->{'latitude'}; $longitude = $data->{'longitude'};  require 'connection.php';  // check whether route's table exist. $results = $con->query ( "show tables like'" . $route . "'" ) or die ( mysqli_error () );  if (($results->num_rows) == 1) {   //"update myguests set lastname='doe' id=2"  $sql = "insert ".$route."(latitude, longitude, created_at)           values( ? , ? , now() )           on duplicate key            update latitude = values(latitude)                , longitude = values(longitude)";    $stmt = $con->prepare($sql) or die ( $con->error );   $stmt->bind_param("ss",$latitude,$longitude);   $stmt->execute();    $stmt->close();    echo "table exist"; } else {   $create =  "create table " . $route . "        (id int(11) not null auto_increment primary key unique,      latitude float(10,6) not null,       longitude float(10,6) not null,      created_at timestamp default current_timestamp)" ;    $stmt = $con->prepare($create) or die ( $con->error );   $stmt->execute();    $stmt->close();     echo "table craeted"; } 

update

this i'm trying now

$sql = "insert ".$route."(id, latitude, longitude, created_at)       values( id, ? , ? , now() )       on duplicate key        update latitude = values(latitude)            , longitude = values(longitude)"; 

which variable should add in values braces id?

you not specifying value id in insert statement, there never duplicate key.

instead, auto-generating next available id.

to solve this, specify value of pre-existing id (if any).