2009-11-18 96 views
0

我需要我的以下代码才能工作。MySQL LIKE声明和PHP变量

我试图用一个PHP变量,并添加[charlist]通配符声明,它

可能有人请帮助弄清楚为什么它不会工作。

基本上它的工作原理,如果我删除[charlist]通配符,但我需要它来找到所有这些都是PHP变量

我的代码,随后

LIKE ''[' $searchWord ']%'' 
+0

尼斯SQL注入,我要,如果我想它以下列方式我怎么能做到这一点的工作就 – shylent 2009-11-18 10:32:00

回答

0

如果$搜索内容是字母一个数组,尝试通过调用第一爆就可以了:

$listOfCharacters = str_split($searchWord, 1); 
$implodedString = implode(',', $listOfCharacters; 

的内爆字符串是一个逗号分隔字符串,而不是现在的数组。 PHP不会将数组自身转换为字符串。 那么你也许可以用它喜欢:

LIKE ''[' $implodedString ']%'' 

尽管我怀疑有关使用它的无弦concatonation这里。我们在这里错过了一些代码吗?

3

要使用字符类,您需要使用REGEXP运算符。

此外,在字符类之后,您需要指示重复运算符。 %匹配任何字符串(只是供等),但如果要应用它,这样它会匹配任何系列的包含您的字符类中的信件,你需要做的:

$query = '`column` REGEXP "[' . $searchWord . ']+"'; 

或者,使用*匹配0或更多。 (+ 1或更多)

+0

说: 如果$搜索内容= AM如何才能得到它,显示句子中只有AM的结果? – 2009-11-18 10:37:12