authスクリプトでクエリを設定する必要があります。WHERE句で使用したい場所です。'_MY_POST_VALUE' IN (Field1, Field2)
最終的なクエリは次のようになります。
SELECT * FROM 'myprefix_users' WHERE 'myemail@email.com' IN ('EMAIL','LOGIN') AND PASSWORD=SHA1('mypassword')
私はこれをやろうとしました:
$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');
..しかし、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')
テーブル名にdb_prefixを使用する必要がありますが、WHERE句では必要ありません。-> where()の3番目のパラメーター(FALSE)でも機能しません:(
どうすれば問題を解決できますか?何か案は?