【发布时间】:2012-03-20 22:38:39
【问题描述】:
我正在尝试使用 implode 函数将多行插入 MySql 中,只使用一个 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)
但在回显最后一条语句(插入语句)时,它显示以下错误。
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 行表示上述代码 sn-p 中的最后一行)。 应该进行哪些更改,以便我可以将存储在数组中的值插入 MySql 数据库?
【问题讨论】:
-
如何使用一个名为 $sql 的字符串而不是数组来执行 $sql .= '('.$colour_id[$i].', '.$_POST['prod_id']. '), ';那么你将不会得到“数组,(1, 1),(2, 1),(3, 1)”的东西,只有“(1, 1),(2, 1),(3, 1)” btw : 如果你用这种方式,你必须删除你最后的逗号。
-
犯了一个愚蠢的错误,因为我对 PHP 不太熟悉。我来自 Java 背景。
-
是的,从一种语言到另一种语言的对话总是有点棘手。但是在 PHP 中你必须仔细阅读错误代码,因为它们会给你很好的提示,你的代码有什么问题。 :)
标签: php