0

私はこれで約3時間立ち往生し、Webを検索しました.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 に答える