2013-02-21 52 views
0

我一直在这里停留了大约三个小时并搜索了网页,我所需要做的就是用popup_menu向mysql语句发送一个操作符,这里是我迄今为止的内容。向mysql语句发送操作符

$sqltest=$dbh->prepare("SELECT Time, Date, Event FROM Events WHERE Date ? ?"); 
$sqltest->execute(param('1'),(param('4')."-".param('3')."-".param('2'))); 

popup_menu({-values=>["<",">","="], -name=>'1'}) 

的代码完美地工作,如果我删除第一个问号,并与运营商代替它,因此所有其他参数都做工精细,它只是有一个问题发送操作。

干杯。

+1

无法发送运营商作为一个参数。您必须直接将其注入到查询中。 – 2013-02-21 19:29:52

回答

1

只能将值绑定到参数。运算符不是一个值,所以你不能将它绑定到参数。

0

正如你所看到的,你不能绑定一个操作符。有一个编程方法,如果你不想来动态建立查询字符串:

%sqltest = (
    '<' => $dbh->prepare("SELECT Time, Date, Event FROM Events WHERE Date < ?"), 
    '=' => $dbh->prepare("SELECT Time, Date, Event FROM Events WHERE Date = ?"), 
    '>' => $dbh->prepare("SELECT Time, Date, Event FROM Events WHERE Date > ?") 
); 
$sqltest{param(1)}->execute(param('4')."-".param('3')."-".param('2'));