LIKE在codeigniter中不起作用

时间:2017-10-03 10:20:42

标签: php mysql codeigniter

我正在使用 LIKE 查看我的数据库中是否存在类似的order_id。当我运行应用程序时,我看到下面的代码不会返回任何值。它只返回null值。

$temp_orders = $this->transaction_model->get_similar_user_temp_transaction($cart_order_id);

function get_similar_user_temp_transaction($order_id)
{
    $query = $this->db->select('*')
        ->from('temp_transaction')
        ->like('order_id', $order_id)
        ->get();
    return ($query->num_rows() < 1) ? null : $query->result();
}

请检查以上代码。帮助将不胜感激

4 个答案:

答案 0 :(得分:0)

在更改语句顺序后尝试使用您的代码

function get_similar_user_temp_transaction($order_id)
{
    $query = $this->db->select('*')
        ->like('order_id', $order_id)
        ->from('temp_transaction')        
        ->get();
    return ($query->num_rows() < 1) ? null : $query->result();
}

修改

如果您想匹配确切的order_id,请使用where代替like

function get_similar_user_temp_transaction($order_id)
{
    $query = $this->db->select('*')
        ->where('order_id', $order_id)
        ->from('temp_transaction')        
        ->get();
    return ($query->num_rows() < 1) ? null : $query->result();
}

答案 1 :(得分:0)

like cluase

中写下where
 $query = $this->db->select('*')
        ->from('temp_transaction')
        ->where("order_id LIKE '%$order_id%'")->get();

答案 2 :(得分:0)

这里 SQL 不起作用,因为喜欢不使用INT值

您有两种选择: -

1. ->like(CONVERT(order_id, CHAR(16), $order_id)
2. Use ->where(order_id, $order_id)

答案 3 :(得分:0)

如果您尝试匹配确切使用where子句。

//dont need ->select('*') //excluding select gives same equivalent 
//dont need from 

return $this->db->where('order_id', $order_id)->get('temp_transaction')->result();