【问题标题】:Get last inserted ID from doctrine and native mysql query从学说和本机 mysql 查询中获取最后插入的 ID
【发布时间】:2013-12-31 04:25:03
【问题描述】:

我在 symfony2 中使用学说。但我使用原生 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? 我缺少什么?

【问题讨论】:

标签: php mysql symfony doctrine-orm


【解决方案1】:

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

$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

【讨论】:

  • 今天是一天。 31-12-13 是你救了我一命的日子。谢谢你:)
  • @AtanuCSE 即使 lastInsertId() 是一个很好的解决方案(特定于连接),但在我看来这是一个更好的solution(first one with orm)
  • @GunnerAziz 我 100% 同意,如果你要使用 Doctrine,你也应该使用 ORM。但是,他说:我在 symfony2 中使用学说。但我使用原生 mysql 查询来插入一些数据。现在我想要数据库中最后插入的 id。 我不知道他为什么要进行本机查询,我也不在乎。 :)
  • 另一条生命获救
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多