先想到了几点记下:
1.在进行数据的查询操作时,我们一帮会把WHERE的条件参数用单引号(' ')或者是双引号(" ")括起来,例如:
SELECT COUNT('X') AS cnt "; # 検索件数
FROM jimusho
WHERE D_Name LIKE '%$strSearchName%'
AND Name LIKE '%$strSearchName%'
ORDER BY BotenCD,JimushoCD
因此一定要记的做单引号(' ')或者是双引号(" ")的转换.2.对于输出到HTML页面的数据一定要把它转换成对应的转义符.主要包括:(',",/,<,>)这几种,放到value中的和其他的有不同.附上用Perl写的转换函数:
##########################################################
##【名称 】:convertString
##【概要 】:<>`'"/ 変換
##【引数 】:①文字列 ②区分(1:DB検索; 2:HTML表示; 3.ITEM)
##【戻り値 】:文字列
##【作成 】:2005/11/18
##【更新履歴】:
##【備考 】:
##########################################################
sub convertString {
#my $self = shift;
my $p_str = $_[0];
my $p_kbn = $_[1];my $strRet; # 戻り値
$strRet = $p_str;if ($strRet) {
if ($p_kbn eq '1') {
$strRet =~ s/'/''/g;
$strRet =~ s////"//"/g;
} elsif ($p_kbn eq '2') {
$strRet =~ s/</</g;
$strRet =~ s/>/>/g;
$strRet =~ s/"/"/g;
$strRet =~ s//`//g;
} elsif ($p_kbn eq '3') {
$strRet =~ s/</</g;
$strRet =~ s/>/>/g;
$strRet =~ s/'/''/g;
$strRet =~ s/"/"/g;
$strRet =~ s//`//g;
$strRet =~ s////"//"/g;
}
}return $strRet;
}##########################################################
##【名称 】:convertText
##【概要 】:"変換 (for TextBox)
##【引数 】:①文字列
##【戻り値 】:文字列
##【作成 】:2005/11/22
##【更新履歴】:
##【備考 】:
##########################################################
sub convertText {
#my $self = shift;
my $p_str = $_[0];my $strRet; # 戻り値
$strRet = $p_str;if ($strRet) {
$strRet =~ s/"/"/g;
}return $strRet;
}