0

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

如果我删除第一个问号并将其替换为运算符,则代码可以完美运行,因此所有其他参数都可以正常工作,只是发送运算符时出现问题。

祝大家欢呼。

4

2 回答 2

1

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

于 2013-02-21T19:33:06.907 回答
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') );
于 2013-02-21T20:27:23.407 回答