【问题标题】:Insert multiple rows into mysql [duplicate]将多行插入mysql [重复]
【发布时间】:2018-09-08 01:18:55
【问题描述】:

我有这样的价值观

$id='11';   
$value1= 'tb1,tb2,tb3,tb4';    
$value2= 'th1,th2,th3,th4';

我要做的就是将它插入 MySql(通过 PHP),如下所示:

+---------+-------------+-------------+
|      id |         tb |      th      |
+---------+-------------+-------------+
|      11 |        tb1 |      th1     |
|      11 |        tb2 |      th2     |
|      11 |        tb3 |      th3     |
|      11 |        tb4 |      th4     |
+---------+------------+--------------+

我将不胜感激。

【问题讨论】:

标签: php mysql arrays


【解决方案1】:

我认为你有字符串类型的值,所以首先分解它然后插入见下面的代码

$id='11';   
$value1= 'tb1,tb2,tb3,tb4';    
$value2= 'th1,th2,th3,th4';
$vals1= explode(',',$value1);
$vals2= explode(',',$value2);
$i=0;
foreach($vals1 as $val1)
{
  $ins="INSERT INTO my_table (id, tb, th)values ( ".$id." ,  '".$val1."' ,'".$vals2[$i]."' )";
  $i++;
}

【讨论】:

    【解决方案2】:

    你可以使用批量插入

      Insert into my_table (id, tb,th)
      values ( 11 ,  'tb1' , 'th1' ),
             ( 11 ,  'tb2' , 'th2' ),
             ( 11 ,  'tb3' , 'th3' ),
             ( 11 ,  'tb4' , 'th4' )
    

    【讨论】:

    • $value1= 'tb1,tb2,tb3,tb4'; $value2= 'th1,th2,th3,th4';我会得到这样的值。
    • @AnithaS .. 如果您有一个数组,那么您应该遍历该数组以进行构建并将正确的值分配给代码..
    【解决方案3】:

    假设您使用 PDO 进行数据库通信,并且 $value1 和 $value2 中的值的数量将相等:

    <?php
    
    $id = 11;
    $value1 = 'tb1,tb2,tb3,tb4';
    $value2 = 'th1,th2,th3,th4';
    $values1 = explode(',', $value1);
    $values2 = explode(',', $value2);
    $sql = "INSERT INTO table (id, tb, th) VALUES (:id, :value1, :value2 )";
    $stmt = $pdo->prepare($sql);
    for ($i = 0; $i < count($values1) $i++)
    {
        $stmt->bindParam('id', $id);
        $stmt->bindParam('value1', $values1[$i]);
        $stmt->bindParam('value2', $values2[$i]);
        if($stmt->execute()){
            echo "QUERY EXECUTED";
        }
    }
    
    ?>
    

    为更有效地使用 prepare 而进行了编辑

    【讨论】:

    • 为了充分利用准备好的语句,准备工作应该在循环外完成并针对每组值执行。
    猜你喜欢
    • 1970-01-01
    • 2018-01-24
    • 2016-02-25
    • 2012-10-16
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    相关资源
    最近更新 更多