使用从MYSQL到SQLSRV的BINARY的密码大小写敏感性

时间:2014-11-02 18:09:19

标签: php mysql case-sensitive sqlsrv

我想知道是否有人可以帮助我。

基本上,我正在尝试使我的登录脚本区分大小写,尤其是在输入密码时。

我使用下面的代码,使用BINARY:

成功地使它在PHP MYSQL中完美运行
$qry="SELECT * FROM studentrecords WHERE username='$login' AND password=**BINARY**'".($_POST['password'])."'";

我已尝试在PHP SQLSRV中使用它,但它无效。

任何人都可以告诉我另一种方法或如何使它在PHP SQLSRV中运行?

在此先感谢,我会很感激。

1 个答案:

答案 0 :(得分:0)

您的SQL Server数据库的默认搜索选项可能不区分大小写。您可以使用COLLATE

轻松更改此查询设置,如下所示
$qry="SELECT * FROM studentrecords WHERE username='$login' AND password COLLATE Latin1_General_CS_AS ='".($_POST['password'])."'";

您应该查看参数化查询的用法以避免SQL注入。微软的官方SQLSRV Driver API Reference有很好的例子。

Much more information about COLLATE