为什么许多人使用htmlentities& ENT_QUOTES?以下代码是来自人们最常见的SQLI / PHP 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();
}
答案 0 :(得分:2)
为什么许多人使用htmlentities& ENT_QUOTES?
为了回答这个问题,我将向您详细说明为什么htmlentities()
使用ENT_QUOTES
标志并且应该用于特定案例,例如就像这个。
在'
中使用字符串值为"O'Neil"
的字符时,如果使用{O'Neil
,则会在使用{htmlentities()
时显示ENT_QUOTES
(在执行任何操作之前应始终执行此操作) 1}}使用O'Neil
标志,unicode撇号将插入数据库,而不是htmlentities()
没有它,将无法提供所需的结果。
将ENT_QUOTES
与O'Neil
标志一起使用,可确保在数据库中输入引号。
使用准备好的声明不会产生影响;如果htmlentities()
未使用ENT_QUOTES
标记,则仍会以{{1}}输入。
这就是他们使用它的原因。你得到这个来源的来源是未知的,所以我不能把话放在嘴里,但那就是那个功能。
我在下面回答了类似的问题,如果您愿意,可以进一步咨询:
以上内容是从另一个答案的评论中删除的。
那就是说,从那以后最好保留它:
那个决定是你的。