使用PHP implode函数使用一个INSERT语句将多行插入MySql

Bha*_*esh 0 php

我正在尝试INSERT INTO使用该implode函数仅使用一个语句将多行插入到MySql中.它是从这里发现的.

我的示例代码如下.

$sql[]=array();
$len=count($colour_id);
for($i=0;$i<$len;$i++)
{
     $sql[]='('.$colour_id[$i].', '.$_POST['prod_id'].')';
}

$l=count($sql);
foreach($sql as $temp)
{
     echo $temp;
}

echo 'insert into product_colour (colour_id, prod_id)values '.implode(',', $sql);
Run Code Online (Sandbox Code Playgroud)

上面的代码只是初始化$sql数组,foreach循环遍历数组并显示数组的内容,如下所示.

Array(1, 1)(2, 1)(3, 1)
Run Code Online (Sandbox Code Playgroud)

但是在回显最后一个语句(insert语句)时,它显示以下错误.

Notice: Array to string conversion in C:\wamp\www\wagafashion\ProductColour.php on line 70
insert into product_colour (colour_id, prod_id)values Array,(1, 1),(2, 1),(3, 1) 
Run Code Online (Sandbox Code Playgroud)

(第70行表示上面代码段中的最后一行).应该进行哪些更改,以便可以将存储在数组中的值插入到MySql数据库中?

Fre*_*nds 8

你的代码应该是:

$sql=array();
$len=count($colour_id);
for($i=0;$i<$len;$i++)
{
     $sql[]='('.$colour_id[$i].', '.$_POST['prod_id'].')';
}

$l=count($sql);
foreach($sql as $temp)
{
     echo $temp;
}

echo 'insert into product_colour (colour_id, prod_id)values '.implode(',', $sql);
Run Code Online (Sandbox Code Playgroud)

看看第一行.