CodeIgniter其中值IN(Field1,Field2)
I need to set query in my auth script, where in WHERE clause I want to use '_MY_POST_VALUE' IN (Field1, Field2)
我需要在我的auth脚本中设置查询,在WHERE子句中我想使用'_MY_POST_VALUE'IN(Field1,Field2)
Final query will be something like this:
最终查询将是这样的:
SELECT * FROM 'myprefix_users' WHERE 'myemail@email.com' IN ('EMAIL','LOGIN') AND PASSWORD=SHA1('mypassword')
SELECT * FROM'myprefix_users'WHER'myemail@email.com'IN('EMAIL','LOGIN')AND PASSWORD = SHA1('mypassword')
I've tried to do this:
我试过这样做:
$this->db->where("'" . mysql_escape_string($_POST['login']) . "' IN (EMAIL,LOGIN)", NULL, FALSE);
$this->db->where("PASSWORD=SHA1('" . mysql_real_escape_string($_POST['password']) . "')");
$userdb = $this->db->get('users');
..but CodeIgniter set prefix to my login/email value and send error:
..但CodeIgniter将前缀设置为我的登录/电子邮件值并发送错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''test@test.com' IN (EMAIL,LOGIN) AND PASSWORD=SHA1('123')' at line 3
SELECT * FROM (`myprefix_users`) WHERE myprefix_'test@test.com' IN (EMAIL,LOGIN) AND PASSWORD=SHA1('123')
I need to use db_prefix in table name, but I don't need it in my WHERE clause, even third param (FALSE) in ->where() don't work for me :(
我需要在表名中使用db_prefix,但我不需要在我的WHERE子句中,甚至第三个参数(FALSE) - > where()对我不起作用:(
How can I solve my problem? Any ideas?
我怎样才能解决我的问题?有任何想法吗?
2 个解决方案
#1
2
Try using Codeigniter's the Input class. It will simplify your code:
尝试使用Codeigniter的Input类。它将简化您的代码:
$login = $this->input->post('login', TRUE);
$password = $this->input->post('password', TRUE);
$this->db->where("'$login' IN ", "('EMAIL','LOGIN')", FALSE);
$this->db->where("PASSWORD", "SHA1('$password')", FALSE);
$userdb = $this->db->get('users');
更多相关文章
- Spring Security ACL使用MySQL配置与数据库脚本
- MySql查询脚本,每月统计活动用户。
- MySQL导出和导入SQL脚本
- MySQL在Linux下Shell脚本操作命令
- mysql批量删除相同前缀的表和修改表名
- JavaScript中当前脚本的URL
- 如何让Require.js获取一个不以`.js`结尾的脚本? [重复]
- 使用没有后端脚本的Angularjs上传文件(例如PHP,JAVA等)
- 浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本