php - 将多维数组信息插入数据库

标签 php mysql sql

这似乎有一个非常简单的解决方案......但我很难弄清楚。我需要一个数组才能进入数据库。例如:

$usa = array(
'idaho' => array(
           county1 => array(
                     'pocatello', 'arimo', 'downey'
                      ),
           county2 => array(
                      'bear', 'cuprum', 'mesa'
                      )
'iowa' => array(
           county1 => array(
                     'des moines', 'adel', 'desoto'
                      ),
           county2 => array(
                      'douglas', 'grant', 'jasper'
                      )

);

我尝试了这种插入数据库的方法:

foreach($usa as $state => $county){
    foreach($county as $name => $city){
    $s=$state;
    $county_name = strtolower($name);
    $city = strtolower($city);
    $us = "INSERT INTO us
           SET state='{$s}',county='{$county_name}',city='{$city}'
           ";
    $us_result = mysql_query($us,$connection);
         }
  }

我认为问题出在 foreach (将状态变量传递到第二个 foreach 循环中)。我已经尝试了多种不同的方法。预先感谢您的帮助!

***注意:当我删除插入的 $s=$state 变量和 state='{$s}' 部分时,一切正常。我仍然无法让它插入状态

最佳答案

有两个主要问题。

首先,您的数组未正确分隔,最好对县名称使用单引号或双引号,无论如何您都将其称为字符串:

$usa = array(
  'idaho' => array(
       'county1'=>array(
                 'pocatello', 'arimo', 'downey'
                  ),
       'county2'=>array(
                  'bear', 'cuprum', 'mesa'
                  )),
  'iowa' => array(
       'county1'=>array(
                 'des moines', 'adel', 'desoto'
                  ),
       'county2'=>array(
                  'douglas', 'grant', 'jasper'
                  ))

);

其次,应该再有一个 foreach 循环来考虑城市名称:

foreach($usa as $state => $county){
  foreach($county as $name => $city){
    foreach ($city as $cityname) {
      $s = $state;
      $county_name = strtolower($name);
      $city = strtolower($cityname);
      $us = "INSERT INTO us SET state='{$s}',county='{$county_name}',city='{$city}'";
      echo $us.'<br>';
    }
  }
}

希望这有帮助!

关于php - 将多维数组信息插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10541360/

相关文章:

php - 将 stdObject 转换为数组 - 调用函数

php - phpmyadmin 发生了什么

MySQL COUNT() 和重复项

phpmyadmin 错误 :A comma or a closing bracket was expected

php - Eclipse 搜索结果 - 文件名未显示

php - 使用php和mysql显示相同别名的照片

php - 存储 HABTM 协会中持有的项目的排序顺序 - CakePHP

最近 6 个月的 SQL Server 查询

sql - JDBC 插入实数组

mysql - 如何在sql中按升序选择日期(dd/mm/yyyy)