【问题标题】:Using foreach and nested array to insert rows in MySql with PHP使用 foreach 和嵌套数组通过 PHP 在 MySql 中插入行
【发布时间】:2013-10-20 16:18:06
【问题描述】:

我编写了以下代码来尝试将数据插入数据库的表中。但是,它只是插入字母。我不确定我做错了什么。

$media_items = array( 
array (
   "media_name" => "Facebook",
   "link_url" => "http://www.facebook.com/insightdezign",
   "icon" => "facebook.png",
   "size" => "48",
   "order" => "0"
),
array (
   "media_name" => "Twitter",
   "link_url" => "http://www.twitter.com/insightdezign",
   "icon" => "twitter.png",
   "size" => "48",
   "order" => "1"
)
);

foreach ($media_items as $media_item) {
    if (is_array($media_item)){
        foreach ($media_item as $item) {
            $rows_affected = $wpdb->insert( $ffui_items, array( 'media_name' => $item['media_name'], 'link_url' => $item['link_url'], 'icon' => $item['icon'], 'size' => $item['size'], 'order' => $item['order'] ) );
        }
    }
}

【问题讨论】:

  • 删除这个foreach ($media_item as $item)

标签: php mysql arrays foreach


【解决方案1】:

在嵌套的 foreach 循环中,您将循环遍历字符串,而不是数组。作为类型杂耍的结果,索引将被评估为0。由于 PHP 也接受字符串上的$foo['bar'] 语法,所以它只会返回第一个字母。

您可以简单地删除嵌套的 foreach 循环并按以下方式进行操作:

foreach ($media_items as $media_item) 
{
    if (is_array($media_item))
    {
        $rows_affected = $wpdb->insert( $ffui_items, 
            array( 
            'media_name' => $media_item['media_name'], 
            'link_url' => $media_item['link_url'], 
            'icon' => $media_item['icon'], 
            'size' => $media_item['size'], 
            'order' => $media_item['order'] 
            ) ;
    }
}

【讨论】:

    猜你喜欢
    • 2011-12-05
    • 2010-12-21
    • 2023-03-13
    • 1970-01-01
    • 2018-12-29
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    相关资源
    最近更新 更多