多亏了hakra,我想我应该在这里从我的原始问题创建一个规范问题。
转义用户输入以安全地与 MySQLLIKE
和REGEXP
函数一起使用(以防止 SQL 注入和其他不希望的可能性)您认为这些解决方案是否足够?假设在以下示例中输入是单个单词。否则它可以很容易地被一个函数处理。
为了LIKE
$input = '__35%';
$inputModf = strtr($input,array('\\'=>'\\\\','%'=>'\\%','_'=>'\\_'));
$inputModf = '%' . [db escape $inputModf here] . '%';
查询就像... WHERE field LIKE '$inputModf'
为了REGEXP
$input = '$35.2';
$spaces = '[[:blank:]]|[[:punct:]]|[[:space:]]';
$inputModf = preg_quote($input);
$inputModf = '(^|'.$spaces.')'.[db escape $inputModf here].'($|'.$spaces.')';
查询就像... WHERE field REGEXP '$inputModf'