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