我试图使用MySql函数将多行插入到INSERT INTO中,其中只有一条INSERT INTO语句。它是从here中发现的。
下面是我的示例代码。
$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);上面的代码简单地初始化$sql数组,foreach循环遍历数组并显示数组的内容,如下所示。
Array(1, 1)(2, 1)(3, 1)但是,在回显最后一条语句(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) (第70行表示上述代码段中的最后一行)。应该进行哪些更改才能将存储在数组中的值插入到MySql数据库中?
发布于 2012-03-20 22:41:53
您的代码应该是:
$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);看一下第一行。
发布于 2012-03-20 22:42:14
我在语句中看到一个额外的逗号(数组和第一个(之间)。
尝试将第一行更改为:
$sql = array();您所拥有的是将$sql的第一个元素设置为一个新数组,而不是将$sql设置为一个新数组。
这样,您的查询应该变成:insert into product_colour (colour_id, prod_id)values (1, 1),(2, 1),(3, 1)。
发布于 2012-03-20 22:45:07
您的问题来自于这段代码的第一行:您正在执行$sql[] = array();,如果您想要一个良好的初始化,应该编写$sql=array();。
在将输入发送到Mysql之前,不要忘记对其进行消毒。
https://stackoverflow.com/questions/9796084
复制相似问题