php - CodeIgniter多维数组存储在mysql数据库单列中

标签 php mysql codeigniter multidimensional-array

我试图将此数据存储在数据库中,但出现错误。如何解决这个问题?

我只想将多维数组存储在一个列中。

$data = array(
            '2017' => array(
                '6' => array(
                    '10' => array(
                        'count' => 76
                    ),
                ),
            ),
        );

$getdata = $this->view_count->setView($data);

型号

public function setView($data)
    {
        $setData = $this->db->where('short', 'honwl')->update('ci_links', $data['view_count']);
        return $setData;
    }

我得到的错误 遇到 PHP 错误

严重性:注意

消息:未定义索引:view_count

文件名:models/View_count.php

行号:14

回溯:

文件:C:\wamp\www\blog\application\models\View_count.php 线路:14 函数:_error_handler

文件:C:\wamp\www\blog\application\controllers\Dashbord.php 线路:52 功能:设置 View

文件:C:\wamp\www\blog\index.php 线路:315 函数:require_once

发生数据库错误

您必须使用“set”方法来更新条目。

文件名:C:/wamp/www/blog/system/database/DB_query_builder.php

行号:1864

最佳答案

如消息所述,您没有 key $data['view_count'] 但您有 $data[2017][6][10]['count'] 值。我假设这些日期是动态更改的,因此您需要通过键 count 获取内部数组的值。 如果您的数组始终具有相似的键,即 $data[year][month][day][count],您可以使用来自 this answer 的代码(修改位)获得那个键值。放入你的模型

private function getCount($arr, $search)
{
    $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr)); 
    foreach($iterator as $key => $value) {
        if($search == $key && $value !== '') {
            return $value;
        }
    }
    return false;
}

然后在您的第一个方法中使用通过此函数过滤的值:

public function setView($data)
{
    $count = $this->getCount($data, 'count');

    if ($count !== false) {
        $setData = $this->db->where('short', 'honwl')->update('ci_links', $count);
        return $setData;
    }
    return false;
}

关于php - CodeIgniter多维数组存储在mysql数据库单列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44475620/

相关文章:

php - 使用 OAuth 刷新 token 获取新的访问 token - Google API

php - 如何从 codeception 和 phantomjs 测试中获取当前 url?

php - rand() 数字 其中 != 特定数字

mysql - 删除 MySQL 中的所有表约束

php - MySql 查询到 Postgres 查询。 Postgres 不支持 IF 条件

PHP Codeigniter 错误无法打开流 : Permission denied

PHP - 查询字符串的多维数组

javascript - 无法使用脚本自动填充 PHP MYSQL 动态表(文本字段)中的值

php - Codeigniter:使用 insert_batch() 检索 insert_ids

codeigniter - 在 Codeigniter 的同一模型类中调用一个函数到另一个函数不起作用