【问题标题】:How to insert data into two tables in mysql - Laravel如何将数据插入到 mysql 中的两个表中 - Laravel
【发布时间】:2015-04-29 06:22:04
【问题描述】:

我想往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 应该相同。那么该怎么做呢? 请帮我解决这个问题。

【问题讨论】:

  • 你是说一个表单输入应该进入两个不同的表吗?如果是的话,你能粘贴你所做的吗?

标签: mysql laravel-4 eloquent


【解决方案1】:

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

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

$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);

这将插入到两个表中。

【讨论】:

    【解决方案2】:

    在这种情况下,查询语句为,

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

    插入 t_preferences SELECT * FROM t_entity_details;

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-10
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      相关资源
      最近更新 更多