pdo mysql insert id,MySQL PDO最后插入ID

I have a table on MySQL with a primary key, I inserted to that table and I want to resume the id of the last row has inserted, I know I have to use LAST_INSERT_ID

but my question is after using that statement to insert values to another table that doesn't have primary key , can I use it again to get the exact ID of the first inserted ?

$php pdo #

include_once 'type_model.php';

$t = new Type_Model();

$typeID = $t->getTypeID($type);

include_once 'informationObject_model.php';

$i = new InformationObject_Model();

$answerIoID = $i->getIOID($ioAnswer);

$query = "INSERT INTO question (info, text, answer, answerIoID, firstChoice, secondChoice, thirdChoice,

firstHint, secondHint, typeID) VALUES (:info, :text, :answer, :answerIoID,

:firstChoice, :secondChoice, :thirdChoice, :firstHint, :secondHint, :typeID)";

$sth = $this->db->prepare($query);

$sth->execute(array(

':info' => $info,

':text' => $text,

':answer' => $answer,

':answerIoID' => $answerIoID,

':firstChoice' => $choices[0],

':secondChoice' => $choices[1],

':thirdChoice' => $choices[2],

':firstHint' => $hints[0],

':secondHint' => $hints[1],

':typeID' => $typeID

));

if ($about == "Place") {

include_once 'place_model.php';

$p = new Place_Model();

$placeID = $p->getPlaceID($place);

$query = "INSERT INTO `question-place` (questionID, placeID) VALUES

(LAST_INSERT_ID() ,:placeID )";

$sth = $this->db->prepare($query);

$sth->execute(array(

':placeID' => $placeID

));

}

and now if the about==place can i write this ?

$query = "INSERT INTO `question-io` (questionID, io) VALUES

(LAST_INSERT_ID() ,:io )";

$sth = $this->db->prepare($query);

$sth->execute(array(

':io' => $io

));

I didn't try it , because I can't try it untill I fill all my tables and I can't fill all my tables without know the ID :)

解决方案

if your object $this->db reference to a PDO object so you can use this

$ID=$this->db->lastInsertId();

to save your ID, it is better to save it in a variable

so after each insert you can save the ID of that inserted row

and remember you have to used it exactly after $sth->execute()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值