概述
我需要一种方法来正确清理我的 MSSQL 数据。我们都知道addslashes()
并且htmlentities()
不削减它。
尝试的解决方案和问题
经过研究,我在 SO 上找到了这个帖子。它工作得很好,直到我需要插入到 type 的列中text
。当尝试在其中插入 HEX 文字时,我得到:
Operand type clash: varbinary is incompatible with text
我需要的
所以,我需要另一种不涉及十六进制文字的可靠消毒策略。或者在将 HEX 插入text
.
我目前的方法:
public static function dbSanitize( $str ){
if( is_numeric( $str ) )
return $str;
$unpacked = unpack( 'H*hex', $str );
return '0x' . $unpacked['hex'];
}
我的查询
[INSERT INTO myTable ( C1,Text2,C3,C4,C5,C6,Text7,C8 ) VALUES ( 111,0x3c703e0a0932323232323c2f703e0a,1,1,1,0,0x5b7b2274797065223a2274657874222c226c6162656c223a224669656c64204e616d65222c2264657363223a22222c224669656c644944223a2239373334313036343937227d5d,1316471975 )].
如果有大量文本数据的另一种选择,我不会改变列的类型转换。
感谢您的任何帮助,您可以提供!!