gpt4 book ai didi

php - mysqli_real_escape_string,我应该使用它吗?

转载 作者:行者123 更新时间:2023-12-03 23:22:04 26 4
gpt4 key购买 nike

我想消除sql注入(inject),我应该使用mysqli_real_escape_string()或者在mysqli中清楚吗?
例如

$nick = mysqli_real_escape_string($_POST['nick'])

最佳答案

您应该使用 prepared statements并将字符串数据作为参数传递,但您不应对其进行转义。

此示例取自文档:

/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

/* bind parameters for markers */
$stmt->bind_param("s", $city);

/* execute query */
$stmt->execute();

/* bind result variables */
$stmt->bind_result($district);

/* fetch value */
$stmt->fetch();

printf("%s is in district %s\n", $city, $district);

/* close statement */
$stmt->close();
}

请注意,该示例不调用 mysqli_real_escape_string .您只需要使用 mysqli_real_escape_string如果您将字符串直接嵌入到查询中,但我建议您永远不要这样做。尽可能始终使用参数。

相关
  • How can I prevent SQL injection in PHP?
  • 关于php - mysqli_real_escape_string,我应该使用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14011899/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com