首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP函数用一个INSERT语句将多行插入到MySql中

问使用PHP函数用一个INSERT语句将多行插入到MySql中
EN

Stack Overflow用户
提问于 2012-03-20 22:38:39
回答 3查看 6.2K关注 0票数 0

我试图使用MySql函数将多行插入到INSERT INTO中,其中只有一条INSERT INTO语句。它是从here中发现的。

下面是我的示例代码。

代码语言:javascript
复制
$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循环遍历数组并显示数组的内容,如下所示。

代码语言:javascript
复制
Array(1, 1)(2, 1)(3, 1)

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

代码语言:javascript
复制
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数据库中?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-20 22:41:53

您的代码应该是:

代码语言:javascript
复制
$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);

看一下第一行。

票数 8
EN

Stack Overflow用户

发布于 2012-03-20 22:42:14

我在语句中看到一个额外的逗号(数组和第一个(之间)。

尝试将第一行更改为:

代码语言:javascript
复制
$sql = array();

您所拥有的是将$sql的第一个元素设置为一个新数组,而不是将$sql设置为一个新数组。

这样,您的查询应该变成:insert into product_colour (colour_id, prod_id)values (1, 1),(2, 1),(3, 1)。

票数 1
EN

Stack Overflow用户

发布于 2012-03-20 22:45:07

您的问题来自于这段代码的第一行:您正在执行$sql[] = array();,如果您想要一个良好的初始化,应该编写$sql=array();。

在将输入发送到Mysql之前,不要忘记对其进行消毒。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9796084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档