我如何在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
答案 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并添加'\'
。只是一个想法。