从doctrine和本机mysql查询中获取最后一个插入的ID

时间:2013-12-31 04:25:04

标签: php mysql symfony doctrine-orm

我在symfony2中使用了doctrine。但我使用本机mysql查询来插入一些数据。现在我想要从数据库中最后插入的id。我的代码如下:

$stmt = $this->getDoctrine()->getManager()
             ->getConnection()
             ->prepare("INSERT INTO tb_company (v1,v2,v3) values('$v1','$v2','$v3')");
$stmt->execute();

所以要恢复我试过的最后一个插入的id

$stmt->insert_id; 

$id=LAST_INSERT_ID(id)

$id=$stmt->getId();

等等。他们都没有为我工作。我是学说的新手。 如何从此处获取最后插入的ID?我缺少什么?

1 个答案:

答案 0 :(得分:12)

我认为你需要这样的东西:

$conn = $this->getDoctrine()->getConnection();

$stmt = $conn->prepare('INSERT INTO tb_company (v1, v2, v3) values(:v1, :v2, :v3)');
$stmt->bindValue('v1', $v1);
$stmt->bindValue('v2', $v2);
$stmt->bindValue('v3', $v3);
$stmt->execute();

$id = $conn->lastInsertId();

您无法将bindValueexecute链接起来,因为它们会返回boolean