如何从插入的数据中获取id

时间:2013-12-19 06:48:42

标签: php sql

大家好我很难创建一个如何获取插入数据的ID的逻辑。我的页面没有用户ID或任何。只需插入数据。我有两张桌子:

请求购买table和ordered_items表。我将表分开了,因为我只需要为包含数据数组的项存储多个数据。

继承我的代码:

<td><textarea name="item[]" value=""></textarea></td>
<td><textarea name="description[]" value=""></textarea></td>
<td><input type="text" name="qty[]" value="" /></td>
<td><input type="text" name="amount[]" value="" /></td>
<td><button class="add">Add</button></td>

我的方法在这里:

public function insertRecord($param1, $param2, $param3, $param4) {

    $query = $this->db->prepare('INSERT INTO `request_to_purchase` (`requestedby`, `date`, `jobtitle`, `supervisor`, `notes`) VALUES (?, NOW(), ?, ?, ?)');

    $query->bindValue(1, $param1, PDO::PARAM_STR);
    $query->bindValue(2, $param2, PDO::PARAM_STR);
    $query->bindValue(3, $param3, PDO::PARAM_STR);
    $query->bindValue(4, $param4, PDO::PARAM_STR);

    try {

        $query->execute();

        $row = $query->rowCount();

        echo $row;

        if(count($row) > 0) {

            return true;
        } else {                
            return false;
        }

    } catch(PDOException $e) {

        die($e->getMessage());

    }

}

public function insertItem($arg1, $arg2, $arg3, $arg4, $arg5, $arg6) {

    $query = $this->db->prepare('INSERT INTO `ordered_item` (`rtp_id`, `item`, `description`, `qty`, `amount`, `date`) VALUES (?, ?, ?, ?, ?, ?)');

    $query->bindValue(1, $arg1);
    $query->bindValue(2, $arg2);
    $query->bindValue(3, $arg3);
    $query->bindValue(4, $arg4);
    $query->bindValue(5, $arg5);
    $query->bindValue(6, $arg6);
}

如何从request_to_purchase表中获取rtp_id,以便我可以将其插入到订购的商品表中。到那时我可以进行查询Select * from ordered item table where rtp_id = ?

4 个答案:

答案 0 :(得分:1)

请看这里Last Insert Id已经有PHP的功能。

在您的问题中使用

$query->execute();
$last_inserted_id = $query->insert_id;

答案 1 :(得分:0)

您可以使用

$id = mysql_insert_id();

答案 2 :(得分:0)

使用此:

$db->lastInsertId();

了解更多信息。见DOC

lastInsertIdPDO的方法,而不是PDOStatement

答案 3 :(得分:0)

在PDO中你可以这样做:

$db->lastInsertId('yourIdColumn');

文档链接:http://pt2.php.net/manual/en/pdo.lastinsertid.php

在您的代码段中。

  if(count($row) > 0) {

        return $this->$db->lastInsertId();
    } else {                
        return false;
    }