0

由于 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),

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

4

2 回答 2

2

您需要return从函数中获取值SQLencode(..)

function SQLencode($svalue) {
    return str_replace("'","''",$svalue);
}
于 2012-09-10T09:46:30.363 回答
1

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

于 2012-09-10T09:49:55.943 回答