1

这是在 PHP 中。我接受用户输入正则表达式的字符串,我需要在 Select 查询中传递它以提取和显示与表达式匹配的文件名。

例如,如果用户输入*.pdf,它应该返回所有的pdf文件;如果用户输入 ^temp,则应显示所有以 temp 开头的文件,依此类推。

我的字符串正确伸出,但我无法形成查询。我在 $parameter 中存储一个字符串,查询是这样的:

$result=mysql_query("select filename from fileinfo where filetype REGEXP '$parameter'");

请帮帮我。

4

2 回答 2

2

我看到了2个问题

  1. 您正在使用 glob 语法(例如 *.pdf)而不是正确的正则表达式语法。 '.*\\.pdf'将是一个有效的正则表达式'*.pdf'(它应该总是失败,因为它是无效的)

  2. 看起来您错误地测试了 FILETYPE 而不是 FILENAME?试试这个:

    $result=mysql_query("select filename from fileinfo where filename REGEXP '{$parameter}'");

最后,尝试回显您的 SQL 以确保您正在运行您认为的查询。你可能有一些逃避问题。

于 2013-05-12T21:37:04.843 回答
0

尝试这个

$result=mysql_query("select filename from fileinfo where filetype REGEXP '".$parameter."'); 
于 2013-05-12T21:32:32.123 回答