如何将数据插入mysql中的两个表 - Laravel

时间:2015-04-29 06:22:04

标签: mysql laravel-4 eloquent

我想将数据插入两个mysql表中,

表格如下:

1)t_entity_details 2)t_preferences

表格内的列如下:

t_entity_details

- Entity_id (primary key, auto-increment)
- First_Name
- Sex
- TagLine
- Personal_Desc
- DOB
- Lang

t_preferences

- Entity_id (primary key too, No auto-increment)
- other columns......

现在,当我提交表单时,两个表中的Entity_id应该相同。那怎么办呢? 请帮帮我。

2 个答案:

答案 0 :(得分:1)

解决方案很简单。你可以使用" mysql_insert_id"获取最后一个递增/插入的id。您可以依次使用它插入第二个表格。

在Eloquent中,事情变得更加简单,假设你了解Eloquent Models,。您插入第一个表:

$insertArray = array('First_Name' => 'Some_value', 
    'Sex' => 'Some_value', 
    'TagLine' => 'Some_value', 
    'Personal_Desc' => 'Some_value', 
    'DOB' => 'Some_value', 
    'Lang' => 'Some_value');

$saveResult = EloquentModel::create($insertArray);

然后您可以按如下方式获取最后一个插入ID:

  $entity_id = $saveResult->id;

您可以使用它插入第二个表格:

$insert_secondTable_array = array("Foo" => "bar");
$insert_secondTable_array['EntityId'] = $entity_id;
$result = SecondEloquentModel::create($insert_secondTable_array);

这将插入两个表中。

答案 1 :(得分:0)

在此方案中,将查询语句作为

插入 t_entity_details (column1,column2,column3,...) VALUES(value1,value2,value3,...);

插入 t_preferences SELECT * FROM t_entity_details ;

我相信如果您不使用其他列进行操作,此类型将解决您的问题。