Php 使用特殊字符,如括号(),星号*。。在什么情况下
每当我试图从数据库的一个表中获取值时。在我的查询中,我为例如Php 使用特殊字符,如括号(),星号*。。在什么情况下,php,mysql,codeigniter,Php,Mysql,Codeigniter,每当我试图从数据库的一个表中获取值时。在我的查询中,我为例如 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
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
那么,你能给我一个解决方案吗?我们可以用特殊字符来比较数值。
例如,从表名中选择*,其中col\u name='emlyium(infra)
您只需使用活动记录编写查询。它会自动处理所有转义字符
$val = "Emlysium(infra)";
$this->db->select('subcat_id');
$this->db->where('col_name', $val);
$query = $this->db->get('table_name');
只需避开每个特殊角色:
Select * from table_name where col_name='Emlysium\(infra\)'
或
获取test表的行,其中text='*()asdf'
如果在php中传递参数:
$qry = "SELECT * FROM test WHERE text = '" . addcslashes('*().;', '*()') . "'";
:返回在charlist参数中列出的字符之前带有反斜杠的字符串
请添加有问题的数据库表内容好吗@如果我作为参数传递并放入where条件,只需使用addcslashes($sql,“*()”);
SELECT * FROM test WHERE text = '\*\\\(\)asdf'
$qry = "SELECT * FROM test WHERE text = '" . addcslashes('*().;', '*()') . "'";