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 に答える