转义函数从文本字段/区域擦除所有数据

时间:2012-09-10 09:42:45

标签: php sql-server escaping

我试图在MSSQL查询中出于错误原因替换'with''。我知道它可能更安全,我只是在学习,他们会变得更安全。

所以我使用了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),

然而,这只是擦除查询中的所有数据,我不明白为什么。之后我的所有数据都是空白的。谁能告诉我哪里出错了?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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