hm, khoai mò cả mấy tiếng đồng hồ vẫn chưa hiểu cách mysql xử backtick ra sao. Xin hỏi mọi người cách giải thích cho các trường hợp hoạt động sau của mysql.
Giả sử ta có một table như sau: Code:
+----+-------+-------+-------+----------+---------------+
| id | uname | pass | fname | lname | secret |
+----+-------+-------+-------+----------+---------------+
| 1 | user1 | pass1 | user | number 1 | user 1 secret |
| 2 | user2 | pass2 | user | number 2 | user 2 secret |
+----+-------+-------+-------+----------+---------------+
Như vậy, khi ta query:
Code:
mysql> select * from user where id='1' and pass='pass1';
+----+-------+-------+-------+----------+---------------+
| id | uname | pass | fname | lname | secret |
+----+-------+-------+-------+----------+---------------+
| 1 | user1 | pass1 | user | number 1 | user 1 secret |
+----+-------+-------+-------+----------+---------------+
Vậy khi ta query thế này thì sao:
Code:
mysql> select * from user where id='1' and pass='` blahblah'='';
+----+-------+-------+-------+----------+---------------+
| id | uname | pass | fname | lname | secret |
+----+-------+-------+-------+----------+---------------+
| 1 | user1 | pass1 | user | number 1 | user 1 secret |
+----+-------+-------+-------+----------+---------------+
Và khi query kiểu này cũng ra kết quả:
Code:
mysql> select * from user where id='1' and pass='` blahblah'=b'';
+----+-------+-------+-------+----------+---------------+
| id | uname | pass | fname | lname | secret |
+----+-------+-------+-------+----------+---------------+
| 1 | user1 | pass1 | user | number 1 | user 1 secret |
+----+-------+-------+-------+----------+---------------+
Bác nào có thể giải thích giúp 2 trường hợp sau hay không?
khoai