如何使用sqlsrv_ *函数转义字符串?

时间:2017-06-22 05:51:51

标签: php sql-server sqlsrv

我如何在sqlsrv中使用real_escape_string

这是我的代码:

$uname = sqlsrv_real_escape_string($conn, trim($_POST['uname']));
$pass  = sqlsrv_real_escape_string($conn, trim($_POST['pword']));

但我收到以下错误:

  

未定义的函数sqlsrv_real_escape_string

2 个答案:

答案 0 :(得分:1)

SQL Server代码使预处理语句非常容易:

$query = "SELECT * FROM users WHERE username=? AND password=?";
$parameters = [$_POST["uname"], $_POST["pword"]];
$result = sqlsrv_query($conn, $query, $parameters);

只需用?替换您的值,然后将它们作为数组(按顺序)作为sqlsrv_query()的第三个参数传递。

(不是说你会在数据库中存储明文密码,对吗?)

答案 1 :(得分:0)

我理解为什么你会想用它来捕捉无辜的'并且清除了SQL注入,但是没有这样的函数sqlsrv_real_escape_string。您可以创建自己的函数或使用preg_replace并添加'\'。只是一个想法。

Take a look at the answers to this question