Laravel与PostgreSQL数据库无法将值插入表并获得雄辩的最后插入的ID

时间:2019-04-23 09:03:32

标签: php sql arrays laravel postgresql

Laravel框架5.4.36 | psql(PostgreSQL)11.2

嗨,现在我想将现有的laravel项目db从mysql迁移到postgresql中,在这里遇到一些麻烦

$insert = [
   "a" => "name",
   "b" => age
   .
   .
];


return DB::table('table')->insert($insert);

当我尝试使用数组数据插入db时,它会像这样返回

Undefined column: 7 ERROR:  column "0" of relation "table" does not exist ..
LINE 1: insert into "table" ("0", "1", "2", ..

它不返回“ a”,“ b”,“ c” ..列,而是返回数组位置。 mysql db可以正常工作


我尝试获取像这样的最后插入的数据ID,

$data = [
   'name'=>$name,
   'address'=>$address,
   'id_class'=>$id_class,
   'lat'=>$lat,
   'long'=>$long,
   'is_changed'=>true
];
return Model::create($data)->id;

这将返回id值的未定义


我更新了我的代码,第一个问题已通过此方法解决:

$insert[] = [
   "a" => "name",
   "b" => age
   .
   .
];

foreach(array_chunk($insert,5000) as $i){
  return DB::table('table')->insert($insert);
}

0 个答案:

没有答案