Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组数据插入数据库_Php_Mysql_Arrays - Fatal编程技术网

Php 将数组数据插入数据库

Php 将数组数据插入数据库,php,mysql,arrays,Php,Mysql,Arrays,我正在尝试将数组插入数据库。为什么这不起作用 $array_zone = array(); $array_data = array(); while($row = mysql_fetch_array($keputusan1)){ $array_zone[] = $row['zone']; $array_data[] = $row['data']; } echo "<pre>"; print_r($array_zone); echo "<br>"; print_r($ar

我正在尝试将数组插入数据库。为什么这不起作用

$array_zone = array();
$array_data = array();
while($row = mysql_fetch_array($keputusan1)){
$array_zone[] = $row['zone'];
$array_data[] = $row['data'];
}

echo "<pre>";
print_r($array_zone);
echo "<br>";
print_r($array_data);
echo "</pre>";

$list_zone = implode(",", $array_zone);
$list_data = implode(",", $array_data);

for($i = 0; $i < 4; $i++)
{
mysql_query("INSERT INTO `db`.`table1` (`id`, `domain`) VALUES ('$list_zone', '$list_data')");
}
结果我得到:


0键应与0键中的数据匹配,1键应与1键中的数据匹配,依此类推。。。请帮帮我。谢谢。

您的列表区域实际上是数组区域,包含在一组单引号中,因此您要传递一个长字符串。你做了四次。一次传递一对值。

确实要这样做吗?尝试序列化函数而不是内爆可能是个好主意

在这个任务中使用JSON可能是更好的主意

您可以使用。$keputusan1中返回的结果是一个SELECT查询。它肯定会返回区域和数据列。假设查询是选择区域、数据、列。。。来自tbl1

如果使用新查询,则

#!/usr/bin/php
<?php
 $array_zone = array('a','b','c','d');
 $array_data = array('1','2','3','4');

print_r($array_zone);
print_r($array_data);

for($i = 0; $i < count($array_zone); $i++)
{
  echo("INSERT INTO `db`.`table1` (`id`, `domain`) VALUES ('$array_zone[$i]', '$array_data[$i]')\n");
}
?>
这将首先选择,然后将其插入一个快照中

代码中的问题是

4个SQL语句。应该是1。 如果使用for循环,则应使用$array\u zone和$array\u数据,而不是$list\u zone和$list\u数据。但从第一步开始就不应该这样。
在我看来,您只是忘记在循环中使用循环索引$i 要访问阵列元素,请执行以下操作:


现在,用mysql\u查询调用替换该echo,并删除结尾处的“\n”…

您似乎在使用$list\u区域和$list\u数据,而不是$array\u区域和$array_data@niomaster:我更新我的问题。它仍然不起作用。@sg552你看到我的答案了吗。这就是你需要的。这就解决了这个问题,而且效率很高。我今天学到了新东西。谢谢:哦,我只能选择一个正确答案。您的回答确实解决了我的问题,但其他用户给了我其他更有效的方法。无论如何,我真的很感谢你的帮助。谢谢您:
INSERT INTO `db`.`table1` (`id`, `domain`) SELECT zone, data FROM tbl1";
#!/usr/bin/php
<?php
 $array_zone = array('a','b','c','d');
 $array_data = array('1','2','3','4');

print_r($array_zone);
print_r($array_data);

for($i = 0; $i < count($array_zone); $i++)
{
  echo("INSERT INTO `db`.`table1` (`id`, `domain`) VALUES ('$array_zone[$i]', '$array_data[$i]')\n");
}
?>