将运算符发送到mysql语句

时间:2013-02-21 19:25:32

标签: mysql perl cgi

我已经坚持了大约三个小时并在网上搜索,我需要做的就是让popup_menu将操作符发送到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'})

如果删除第一个问号并将其替换为运算符,代码就可以正常工作,因此所有其他参数都正常工作,只是在发送操作符时遇到问题。

干杯。

2 个答案:

答案 0 :(得分:1)

您只能将值绑定到参数。运算符不是值,因此您无法将其绑定到参数。

答案 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') );