Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在哪里转义字符串以防止mysql注入?_Php_Mysql - Fatal编程技术网

Php 在哪里转义字符串以防止mysql注入?

Php 在哪里转义字符串以防止mysql注入?,php,mysql,Php,Mysql,我想知道在这段代码的哪里添加$stmt->real\u escape\u string$password;为了防止mysql注入: if ($stmt = $this->connect->prepare($sql)) { $stmt->bind_param('ss', $username, $password); $stmt->execute(); } 是在prepare语句之后,还是在prepare语句之前,因为我读到在转义之前必须先有一个connect语句,

我想知道在这段代码的哪里添加$stmt->real\u escape\u string$password;为了防止mysql注入:

if ($stmt = $this->connect->prepare($sql)) {
  $stmt->bind_param('ss', $username, $password);
  $stmt->execute();
}
是在prepare语句之后,还是在prepare语句之前,因为我读到在转义之前必须先有一个connect语句,所以我的猜测应该在prepare语句之后,对吗

关于mysql注入,我还应该知道什么呢?

你不知道

准备好的语句的一部分作用是为您转义数据。因此,如果要将其绑定为param,则不需要逃避任何内容。事实上,如果你加上它,你会在奇怪的地方看到反斜杠之类的东西

唯一需要使用real_escape_字符串的时候,是将变量作为值直接插入SQL字符串中。如果有人这样做,他们可能会想再次检查他们对准备好的陈述的全部观点的理解

你没有

准备好的语句的一部分作用是为您转义数据。因此,如果要将其绑定为param,则不需要逃避任何内容。事实上,如果你加上它,你会在奇怪的地方看到反斜杠之类的东西


唯一需要使用real_escape_字符串的时候,是将变量作为值直接插入SQL字符串中。如果有人这样做,他们可能会想再次检查他们对准备好的陈述的全部观点的理解

bind param总是这样做:如果您将来自外部的数据字符串放在内部,那么在构建$sql字符串时需要转义;否则,绑定是安全的。@yes123-我不知道:所以我不需要添加那个转义语句,因为绑定将总是转义?可能的重复而不是重复;OP已经在使用准备好的语句。这个问题只是关于它的机理Pbind param总是这样做,如果您将来自外部的数据字符串放在内部,那么在构建$sql字符串时需要转义;否则,绑定是安全的。@yes123-我不知道:所以我不需要添加那个转义语句,因为绑定将总是转义?可能的重复而不是重复;OP已经在使用准备好的语句。这个问题只是关于它的机理P