首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHP语言和A For循环实现MySQL表的数据输入

问用PHP语言和A For循环实现MySQL表的数据输入
EN

Stack Overflow用户
提问于 2012-12-20 05:40:44
回答 3查看 320关注 0票数 2

因此,我在将数组放入MySQL表时遇到了一些问题。我的目标是将数组中的一个元素放入表的一行中,但实际情况并非如此。

代码语言:javascript
复制
$cnt = count($array);
for($i = 0; $i < $cnt; $i++)
    {
    mysql_query("
        INSERT INTO $groupname (id, name) 
        VALUES('', '".$array[$i]."')
        ", $conn1); 
    }

( id是自动递增的)

我希望这会将数组的第一个元素放在表的第一行,第二个元素放在第二行,依此类推。相反,我的表看起来像这样

代码语言:javascript
复制
+----+-------+
| id | name  |
+----+-------+
|  1 | Array |
+----+-------+

我假设它只是取数组,把整个数组放在第一行。我如何防止这种情况发生?我该如何处理每行一个元素?

此处编辑的是var_dump

代码语言:javascript
复制
array(1) { [0]=> array(5) { [0]=> string(1) "0" [1]=> string(1) "1" [2]=> string(1) "2" [3]=> string(1) "3" [4]=> string(1) "4" } } 

出于测试目的,我只将数字0-4按升序放入数组的每个元素中

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-20 05:56:51

需要指出的几件事:

不要调用您的id值来插入。

看起来$array[$i]本身就是一个数组,所以请确保使用了正确的值。

您应该只构建插入查询并插入一次(参见下面的示例)。

代码语言:javascript
复制
$query = 'INSERT INTO ' . $groupname . ' (name) VALUES ';
foreach($array as $item) {
    $query .= "('". $item['name'] . "'),"; // 'name' or whatever proper item in multidimensional array is.
}
$query = rtrim($query, ',');
mysql_query($query, $conn);

您真的需要考虑使用mysqli_*函数而不是mysql_*,因为这些函数已被弃用。

你真的应该在你的查询上添加错误处理(例如,处理查询不工作的情况,并给自己一条错误消息。

票数 0
EN

Stack Overflow用户

发布于 2012-12-20 05:45:12

您的代码有效。但是看起来$array实际上是一个在第一级包含1个键的多维数组。也许可以在循环之前尝试一下var_dump($array),看看里面有什么。

或者尝试在$array[0]上执行盲for,然后在循环中执行$array[0][$i]。尽管盲目编码从来都不是一件好事。

票数 0
EN

Stack Overflow用户

发布于 2012-12-20 05:46:07

我假设你打算做这样的事情:

代码语言:javascript
复制
VALUES('', '".$array[$i]['name']."')"

您不能将数组直接插入到mysql中,而必须插入它的每个值。

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

https://stackoverflow.com/questions/13961696

复制
相关文章

相似问题

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