gpt4 book ai didi

php - 用户提供的输入 SQL 转义

转载 作者:行者123 更新时间:2023-11-29 04:04:39 24 4
gpt4 key购买 nike

你能给我建议吗?我搜索了问题,但没有找到与我的类似的问题。

当我打算在 SQL 查询中使用用户输入时,如何让它们自动转义?我不喜欢在我的代码中填充类似的东西

$var_x = $DB->Escape($_POST['var_x']);
$another_var = $DB->Escape($_POST['another_var']);
$some_string = $DB->Escape($_POST['some_string']);
...

假设我有带有执行 mysql_real_escape_string 的 Escape 方法的数据库类

但是我也不能在 SQL 查询上设置自动转义,因为它会破坏插入查询:

function Exec($sql){
$result = mysql_query($this->Escape($sql));
}

$q = $DB->Exec("SELECT * FROM table WHERE id = 'xxx'");

这让他们成为“xxx”。这是不正确的。

我最不想做的就是制作参数化语句,因为它会使系统更加复杂。当没有其他选择时,我会考虑这个选项。

简而言之 - 如何进行智能自动转义,它适用于整个查询并仅转义值?

最佳答案

事实上,您应该考虑的唯一一件事(显然,我们在这里不是在谈论测试项目)是使用参数化语句。这是唯一的方法(当然,当 SQL synax 允许它们时)。如果处理得当,这些不会让您的系统变得更复杂,但它们将使变得更健壮。

关于php - 用户提供的输入 SQL 转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/729356/

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