清除文本字段/区域中所有数据的转义功能


Escaping function wiping all data from text fields/areas

由于MSSQL查询中的错误原因,我正试图将"替换为"。我知道这会更安全,我只是在学习,他们会变得更安全。

所以我用了str_replace。并做到了这一点。

$dbTABLE = "Table_Name";
$query_sql = sprintf("UPDATE %s SET PageHTML = ('%s') WHERE PageID = '%d'",
$dbTABLE,
str_replace("'","''",$PageHTML),
$PageID);

工作得很好,但为了一致性和易用性,我想写一个可以包含在所有页面中的函数。功能如下:

 function SQLencode($svalue) {
str_replace("'","''",$svalue);
}

并像这样实现:

SQLencode($PageHTML),

然而,这只是从查询中删除了所有数据,我不明白为什么。之后我所有的数据都是空白的。有人能告诉我哪里出了问题吗?

您需要return函数SQLencode(..)的值。

function SQLencode($svalue) {
    return str_replace("'","''",$svalue);
}

与其尝试自己进行转义(sprintf是一个糟糕的选择),不如使用mssql_bind函数将参数绑定到查询。