我试图在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),
然而,这只是擦除查询中的所有数据,我不明白为什么。之后我的所有数据都是空白的。谁能告诉我哪里出错了?
答案 0 :(得分:2)
您需要return
函数SQLencode(..)
中的值。
function SQLencode($svalue) {
return str_replace("'","''",$svalue);
}
答案 1 :(得分:1)
不要试图自己进行转义(sprintf是一个糟糕的选择),最好使用mssql_bind函数将参数绑定到查询。