在表中插入多行需要了解正在发生或未发生的事情的过程

时间:2014-03-22 18:47:44

标签: php mysql loops insert

你好我正在尝试使用PHP将数组中的值插入mysql表中的多行。

这基本上就是我正在做的事情:

$x=0;

while($x < 40){ <----the 40 is the size of the array

$nameinsert=$name[$x];

$sql = "INSERT INTO mytable VALUES ('','$nameinsert')";

$x++;
}
return mysql_query($sql);

显然解决方案会很棒,但我的主要问题是为什么这不起作用?为什么它只插入数组中的最后一个值?

我可以告诉它应该:

从数组中获取值 插入表格 增加价值$ x 然后从数组中获取下一个值 然后将其插入表格

那为什么不呢?

1 个答案:

答案 0 :(得分:1)

你应该写代码插入哪一列的值如下所示:

INSERT INTO mytable('name of column') VALUES('value here');

另外我不知道你为什么要放空值!

所以问题是为什么它只插入最后一个值?

因为你把查询的执行从while循环开始尝试像这样

$stmt = $dbConnection->prepare("INSERT INTO mytable VALUES ('', ?)");
if ($stmt) {
    while($x < 40){ <----the 40 is the size of the array
        $nameinsert = $name[$x];
        $stmt->bind_param('s', $nameinsert);
        $stmt->execute();

        $x++;
   }

   $stmt->close();
}

现在发生了什么?

它将添加它的第一个值并通过mysql_query()执行查询,之后它会增加值并执行seconde值.... etc