为什么mysql_real_escape_string不适用于MySQLi?

时间:2016-10-06 03:00:39

标签: php mysqli

为什么mysql_real_escape_string无法在MySQLi上运行?

当我使用MySQL时,我可以使用此代码。

$test = mysql_real_escape_string($_POST[test]);

但是当我更新使用MySQLi时。我试着用

$test = mysql_real_escape_string($_POST[test]);

但不行。

如何在mysql_real_escape_string上使用MySQLi

如果无法在mysql_real_escape_string上使用MySQLi,我该如何保护SQL注入?

现在我用

$test = $_POST[test];

对于SQL注入来说非常糟糕。

1 个答案:

答案 0 :(得分:2)

如何在mysql_real_escape_string上使用MySQLi

答案:

OOP方法: $test = $conn -> real_escape_string($_POST['test']);

程序方法:$test = mysqli_real_escape_string($conn,$_POST['test']);

您还在询问如何防止SQL注入

答案:如果您要使用mysqli_*,那么您应该使用parameterized queries

http://php.net/manual/en/mysqli.real-escape-string.php