Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting row data of inserted row (Mysql, PHP, mysqli)

Tags:

php

mysql

mysqli

I need to get back the postid (auto-incrementing PK) of a row when i insert it.

I am currently using this to get it

//get postid to return
if($result = $db -> query('SELECT postid FROM posts WHERE title = \''.$title.'\' LIMIT 1')){
        $row = $result->fetch_assoc();
        $json['postid']  = $row['postid'];
        $result->free();

where $title is the title name of the newly-inserted post.

Is there part of the mysqli class that will allow me to do this in one query?? Does $db -> query() return any information that will make this simpler and more secure?

I have tried looking through the mysqli documentation, but I could not find what i wanted. I'm sure it is there somewhere.

Multiple titles will screw this up, and although they are not allowed, you cant be too safe

like image 732
Douglas Avatar asked Dec 07 '22 05:12

Douglas


2 Answers

Does your table have an AUTO_INCREMENT column? If so you can use mysql_insert_id() or mysqli->insert_id to get that value, and then use it to select the row. More info here.

like image 119
Jordan Running Avatar answered Dec 10 '22 11:12

Jordan Running


insert_id http://php.net/manual/en/mysqli.insert-id.php

like image 36
MindStalker Avatar answered Dec 10 '22 12:12

MindStalker