donglingyi4679
2015-07-27 15:35
浏览 251
已采纳

如何在Lumen / Laravel中使用基本查询获取DB :: insert之后的行id

I'm using Lumen 5.1 and running raw SQL queries, using the DB facade.

How can I get the row's id after performed an insert query?

For example:

$rowId = DB::insert("insert into `customers` (name) values ('Tom')");
echo $rowId; // 1

The variable $rowId should then contains the db row's id.

图片转代码服务由CSDN问答提供 功能建议

我正在使用 Lumen 5.1 并使用运行原始SQL查询 DB 门面。

如何在执行 insert 查询后获取行的id?

例如: \ n

  $ rowId = DB :: insert(“insert into`custers`(name)values('Tom')”); 
echo $ rowId;  // 1 
   
 
 

变量 $ rowId 应该包含db行的id。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • douzhuan4406 2015-07-27 15:54
    已采纳

    I think you may have to get a handle to the underlying PDO object and then us that to get the new insert id like so

    $pdo = DB::connection()->getPdo();
    
    $result = DB::insert("insert into `customers` (name) values ('Tom')");
    
    if ( $result )  {
        $rowId = $pdo->lastInsertId();
    }
    

    Or maybe even simplier

    $result = DB::insert("insert into `customers` (name) values ('Tom')");
    if ( $result )  {
        $rowId = DB::connection() -> getPdo() -> lastInsertId();
    }
    

    Not tested, just extrapolated from the manual

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题