每当我尝试从数据库的一个表中获取值时。在我的查询中,我将(),*,-..etc
之类的特殊字符用于例如
Select * from table_name where col_name='Emlysium(infra)'
or Select * from table_name where col_name='demo & intest'
如果我使用上面的查询,那么这些查询对于获取正确的值没有用,并且它们显示为空值,因为我使用了特殊字符。
**Demo Table**
id | col_name | col_name2
1 | Emlysium(infra) | abc
2 | demo & intest | mno
3 | jerry.pat | xyz
因此,您可以建议我使用特殊字符比较值的解决方案。 例如。从table_name中选择*其中 col_name =' Emlysium(infra)
********My code
$site = 'Emlysium(infra)';
function get($site)
{
$this->db->select('*');
$this->db->where(array('running.site'=>$site));
$query = $this->db->get('running');
return $query->num_rows();
}
答案 0 :(得分:2)
您只需编写查询使用活动记录。它会自动处理所有转义字符
$val = "Emlysium(infra)";
$this->db->select('subcat_id');
$this->db->where('col_name', $val);
$query = $this->db->get('table_name');
答案 1 :(得分:2)
逃避每个特殊角色:
Select * from table_name where col_name='Emlysium\(infra\)'
OR
获取表格测试的行,其中text =' *()asdf'
SELECT * FROM test WHERE text = '\*\\\(\)asdf'
如果你在php中传递参数:
$qry = "SELECT * FROM test WHERE text = '" . addcslashes('*().;', '*()') . "'";
addcslashes (php.net):返回带有反斜杠的字符串,该字符串在charlist参数中列出。