Php mysqli\u real\u escape\u字符串的其他使用方法?

Php mysqli\u real\u escape\u字符串的其他使用方法?,php,mysqli,Php,Mysqli,我想知道我是否可以使用mysqli\u real\u escape\u字符串进行加密。我通常这样使用它: $name = $_POST['name']; $nameSecure = mysqli_real_escape_string($name); $sql = "SELECT * FROM persions WHERE firstname = {$name}"; $con->query($sql); 但是当我有更多的$u帖子时,我可以这样使用mysqli\u real\u escape

我想知道我是否可以使用mysqli\u real\u escape\u字符串进行加密。我通常这样使用它:

$name = $_POST['name'];
$nameSecure = mysqli_real_escape_string($name);
$sql = "SELECT * FROM persions WHERE firstname = {$name}";
$con->query($sql);
但是当我有更多的$u帖子时,我可以这样使用mysqli\u real\u escape\u字符串:

$name = $_POST['name'];
$sql = "SELECT * FROM persions WHERE firstname = {$name}";
$con->query(mysqli_real_escape_string($sql));
这两种方法有什么不同吗?事实上,我没看到有人用这种方法。我可以使用secound方法吗?这两种方法在安全性方面有什么不同吗

这两种方法有什么不同吗

对。第一个方法仅转义
$name
字符串,而第二个方法转义整个查询字符串

虽然这对于您的特定查询来说不是问题,但对于查询来说可能是问题,例如:

SELECT * FROM table WHERE name = 'string';
因为将转义引号,导致查询:

SELECT * FROM table WHERE name = \'string\';

另一方面,我鼓励您阅读。

我不会那样做。转义整个字符串可能会导致更多的问题。这对您有效吗?如果它没有坏,就不要修理它!请注意,他们可以使用
foreach
循环。在网上可以找到很多例子。甚至可能
array\u map()
.OP:“但是当我有更多的$\u POST…”-这告诉我他们希望同时向函数传递多个POST数组,而不是使用单独的调用。我明白了。是的,那是我关于准备好的声明的说明。