Php 在Get_Where查询(代码点火器)中匹配JSON字段

Php 在Get_Where查询(代码点火器)中匹配JSON字段,php,mysql,json,codeigniter,Php,Mysql,Json,Codeigniter,我在get_where查询中执行一个结果_数组(),但'added_by'中的列是{'id':'(id)}的json格式 如何执行get_where查询以匹配当前用户id 这是我到目前为止得到的 $this->db ->order_by('till', 'desc') ->get_where('coupon', [ 'added_by' => json_encode(array('id'=> $

我在get_where查询中执行一个结果_数组(),但'added_by'中的列是{'id':'(id)}的json格式

如何执行get_where查询以匹配当前用户id

这是我到目前为止得到的

$this->db
     ->order_by('till', 'desc')
     ->get_where('coupon', 
          [
               'added_by' => json_encode(array('id'=> $this->session->user_id)), 
               'status' => 'ok'
          ]
     )
     ->result_array()

json_encode
将返回
{“id”:$id}
。如果您对
{“id”:“$id”}
没有问题,那么您只需要强制强制使用字符串:

json_encode(array('id'=> $this->session->user_id . ''))
如果需要
{'id':'$id'}
,则需要手动执行字符串替换

str_replace( '"', '\'', json_encode(array('id'=> $this->session->user_id . ''))

这仅在数据库中其{'type':和'id'}都是单个的情况下有效。。。我需要它使用双引号,比如{“type”:“id”@Gilbert如果需要双引号,那么使用第一个例子:-)