2017-08-03 3 views
0

I持つフィルタのparamから次のクエリ:、連結クエリ

select * from table WHERE x= :x '{$this->getQuery()}' 

function getQuery() 
{ 
    $query = ""; 
    if ($this->y != "") 
    $query ="and y =:y"; 

    return $query; 
} 

しかし、時には、私はライン」とyを削除要求から「Y」から空のparamsを得たとき=:y "となり、クエリは次のようになります。

select * from table WHERE x= :x 

問題はそれを使用しています。 PDO->バインド(:Y) とクエリが空の場合、バインドが動作し、次のエラーがスローされていません。

Invalid parameter number: number of bound variables does not match number of tokens 

答えて

1

あなたはのparamsを結合しているときの状態を確認する必要があります。

if($this->getQuery()!=''){ 
    PDO->bind(':y',$val_y); 
}