我正在尝试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数据库中?
你的代码应该是:
$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)
看看第一行.