php - Last insert id issue--How to fetch it -
php - Last insert id issue--How to fetch it -
i'm using $id = mysqli_insert_id($connection); lastly inserted id, in case if updates record in table, returns 0 lastly inserted id.
is there way handle this?
i want id each time weather it's inserting or updating.
thanks
edit
i need id used inserting info table2
id tab1 set info tab2 id tab1 fk
and important, i'm not using update where clause
here code i'm using
$val = utf8_encode($val); mysqli_set_charset($connection, 'utf8'); mysqli_query($connection, "set names 'utf8'"); mysqli_query($connection, "set foreign_key_checks = 0;"); $sql = "insert leaks($insert) values($val)"; $sql .= " on duplicate key update `url` = '".mysqli_real_escape_string($connection,$data['url'])."';"; mysqli_query($connection, ($sql))or die(mysqli_error($connection)."<br />".print($sql)); $id = mysqli_insert_id($connection); $proofs['leaks_id'] = $id; mysqli_query($connection, "set foreign_key_checks = 0;"); print_r($id); $this->insertproofs($connection, $proofs); connection::close_connection($connection); please note downwards $this->insertproofs($connection, $proofs); inserts info table2 on base of operations of key passed it
on insert
after executing insert query, using mysqli_insert_id() absolutely fine.
update depending on update, you;
would knowid's you're updating know criteria search id's update. for example, if update like;
update `foo` set `x`='y' `a`='b' you can run
select `id` `foo` `a`='b' to fetch updated id's.
editi see you're using on duplicate key update.
you can modify query become (assuming id primary auto_increment key)
on duplicate key update `url` = '".mysqli_real_escape_string($connection,$data['url'])."', id = last_insert_id(id) then can utilize mysqli_insert_id() regardless of if update or insert
for example, if run (with record of id=2 exists; we'll update);
insert foobar (id, foo) values (2, 'bar') on duplicate key update foo = 'baz', id = last_insert_id(id); select last_insert_id(); the output 2, lastly insert id.
php mysqli
Comments
Post a Comment