Codeigniter 2.1.0 เขียนคำสั่งเพื่อเลือกข้อมูล
$this->db->like('ชื่อฟิว','คำที่ต้องการค้นหา','none'); ซึ่งผลลัพธ์ SQL ของมันที่ควรจะเป็นหลังจากเราเพิ่ม 'none' ต่อท้าย เพื่อไม่ใส่ % คือwhere 'ชื่อฟิว' like 'คำที่ต้องการค้นหา'
แต่ผลลัพธ์ที่ได้รับกลับเป็น
where 'ชื่อฟิว' like '%คำที่ต้องการค้นหา%'ซึ่งมันก็ยังใส่ % มาให้เราวิธีแก้ไขปัญหานี้คือ ไปที่ system->database->DB_active_rec.phpหลังจากเปิดไฟล์ DB_active_rec.php แล้ว ค้นหาคำว่า if ($side == 'before')
อยู่ประมาณบรรทัด 664
เพิ่ม
if ($side === 'none')
{
$like_statement = $prefix." $k $not LIKE '{$v}'";
}
เข้าไปก่อนคำสั่ง if ($side == 'before')ก็จะได้ประมาณนี้
if ($side === 'none')
{
$like_statement = $prefix." $k $not LIKE '{$v}'";
}
elseif ($side == 'before')
{
$like_statement = $prefix." $k $not LIKE '%{$v}'";
}
elseif ($side == 'after')
{
$like_statement = $prefix." $k $not LIKE '{$v}%'";
}
else
{
$like_statement = $prefix." $k $not LIKE '%{$v}%'";
}ที่มา : http://codeigniter.com/forums/viewthread/207134/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น