Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kho lưu trữ mảng đa chiều CodeIgniter trong cột đơn của cơ sở dữ liệu mysql

Như thông báo cho biết, bạn không có khóa $data['view_count'] nhưng bạn có $data[2017][6][10]['count'] giá trị. Tôi cho rằng những ngày đó được thay đổi động nên bạn cần lấy giá trị của mảng bên trong bằng khóa count .Nếu mảng của bạn luôn có các khóa tương tự, tức là $data[year][month][day][count] , bạn có thể sử dụng mã (đã sửa đổi một chút) từ cái này câu trả lời để nhận giá trị khóa đó. Đưa vào mô hình của bạn

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

Sau đó, trong phương pháp đầu tiên của bạn, giá trị sử dụng được lọc qua hàm này:

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;
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khi nào sử dụng các giá trị được phân tách bằng dấu phẩy trong Cột DB?

  2. Làm cách nào để tôi có thể lấy lại một cách đệ quy ID cha của các hàng trong bảng MySQL này?

  3. Làm cách nào để thay đổi giá trị cho innodb_buffer_pool_size trong MySQL trên Mac OS?

  4. Làm cách nào để lưu ký hiệu '€' trong MySQL bằng PHP?

  5. Phương thức Illuminate \ Support \ Collection ::save không tồn tại trong Laravel