Php 在$\u POST中使用htmlentities和entquotes

Php 在$\u POST中使用htmlentities和entquotes,php,mysql,prepared-statement,html-entities,Php,Mysql,Prepared Statement,Html Entities,为什么很多人使用htmlentities和ENT_引号?下面的代码是一个示例,它来自于一个最受关注的SQLI/PHP CRUD,该CRUD教授人们。他想干什么?目的何在?这是值得学习一两个小时的东西吗 $firstname = htmlentities($_POST['firstname'], ENT_QUOTES); $lastname = htmlentities($_POST['lastname'], ENT_QUOTES); if ($stmt = $mysqli->prepare

为什么很多人使用htmlentities和ENT_引号?下面的代码是一个示例,它来自于一个最受关注的SQLI/PHP CRUD,该CRUD教授人们。他想干什么?目的何在?这是值得学习一两个小时的东西吗

$firstname = htmlentities($_POST['firstname'], ENT_QUOTES);
$lastname = htmlentities($_POST['lastname'], ENT_QUOTES);
if ($stmt = $mysqli->prepare("UPDATE players SET firstname = ?, lastname = ?
WHERE id=?"))
{
$stmt->bind_param("ssi", $firstname, $lastname, $id);
$stmt->execute();
$stmt->close();
}
为什么很多人使用htmlentities和ENT_引号

为了回答这个问题,我将向您提供一个详细的解释,说明为什么使用了with the ENT_QUOTES标志,并且应该将其用于像本例这样的特定情况

是否应该有一个字符,如&039;字符串值为O&039;Neil在HTML源代码中会显示O'Neil在使用带有ENT_QUOTES标志的htmlentities时,在做任何事情之前都应该做的事情,unicode撇号将插入数据库中,而不是O&039;Neil如果没有它,就不会给出期望的结果

使用带有ENT_QUOTES标志的htmlentities可确保在数据库中输入报价

用事先准备好的语句来表达这一点不会有什么不同;它仍将作为O&039输入;Neil如果未使用带有ENT_QUOTES标志的HTMLENTIES

这就是为什么他们用这个。你得到这个的来源是未知的,所以我不能把单词放进他们的嘴里,但这就是这个函数的作用

我在下面回答了一个类似的问题,如果您愿意,可以进一步咨询:

上述内容摘自另一份答复中的评论

也就是说,最好保留它,因为:

这不会有什么坏处 如果有人的键盘语言使用unicode字符,那么回到原点,输入的是unicode码,而不是预期的值。
那是你的决定。

为什么要问我们?为什么不问问是谁写的代码?为什么你认为htmlentities的东西属于sql注入?他的代码已经从很多年前开始更新了。不知道我会如何联系他,如果我联系了他,他甚至会回应吗?为什么要问谁?为什么不问问你呢?这不是重点。我看过一篇文章,有人说如何使用结束引号进行安全性。安全性不限于SQL注入。为什么你认为htmlentities属于sql注入?