php - 一次向两个表中插入记录

标签 php mysql yii

在我的网页中,有一个 CSV 导入部分。用户可以导入数千条记录。我需要将 csv 详细信息插入到 2 个表中。

第一个表包含基本信息。第二个包含其他附加信息。所以我需要将第一个表的插入 ID 保存到第二个表中。

针对上述需求,我写了2条mysql语句。但导入需要更多时间。这里,是否可以使用单个查询将记录插入到 2 个表中?

请指教。

最佳答案

您不能同时插入两个表(因为您需要第一个表中的 id),但您可以为第一个表逐一插入,为第二个表插入一个单个查询,如下所示:

$main_data = array('data1', 'data2', 'data3');
  $new_data = array();

    foreach($main_data as $data) {

      mysql_query("insert into table1 (data) values ('$data')");

      $new_id = mysql_insert_id();

      // Save the new id into an array + the data
      $new_data[$new_id] = $main;

    }

    $insert_into = array();

    // Create a new insert statement
    foreach($new_data as $new_key => $data) {
        $insert_into[] . "($new_key, '$data')"
    }

    $imploded_data = implode(',', $insert_into);

    if (count($insert_into) > 0) {

        // The result will be something like Insert into `table2` (id, value) values (1, 'data1'), (2, 'data2'),(3, 'data3');
        mysql_query("insert into `table2` (id, value) values $imploded_data");
    }

关于php - 一次向两个表中插入记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19315976/

相关文章:

php - 将 Laravel 连接到另一个 IP 上的数据库

php - mysqli::real_connect(): (HY000/2002):在 cplesk 中

html - 这个 css 有一个包含 2 行的页面是否正确?

php - 由于构造函数,Yii 模型 isNewRecord false

php - 无法在响应式表格布局中显示表格标题

javascript - JS在隐藏未定义值后仅返回数组中第一个id的值

php - Yii CHtml::ajaxLink 确认删除时的 javascript 消息

php - 连接到在线数据库android时出错

mysql - 有没有更短的方法 - SQL - 多个 LIKE 和 OR

php - Yii-bootstrap Tabs 事件处理程序