2016-10-26 13 views
1

検索クエリを処理していて、ちょっとしたバンプが発生しました...下記のコードでわかるように、配列に値を追加して後で実行しますスクリプトではありませんが、実際には動作していません...だから、私はこのすべてをvar_dumpして、それは想定されていたように戻りましたが、:qはリンクに入力された値に変更されませんでした。あなたが結合しながら、私はそれを考え出したしばらく後に、あなたはパラメータを使用することになっていない$values["q"] = $_GET['q'];検索クエリの配列の値のバインディングが機能しない

$query   = "SELECT * FROM articles"; 

$columnsQuery = []; 
$values   = []; 

if(isset($_GET['q']) && !empty($_GET['q'])) 
{ 
    $columnsQuery[]  = " WHERE MATCH (title) AGAINST (':q' IN NATURAL LANGUAGE MODE)"; 
    $values["q"]  = $_GET['q'];   // TRY WITHOUT COLON 
} 

$fullQuery = $query . implode(" ", $columnsQuery) 
    . " ORDER BY id DESC" 
    . " LIMIT {$paginator->getLimitSQL()}"; 

$getArticles = $db->prepare($fullQuery)->execute($values); 

答えて

0
$query = "SELECT * FROM articles"; 

$values = array(); 
if(!empty($_GET['q'])) { 
    $query .= " WHERE MATCH (title) AGAINST (q IN NATURAL LANGUAGE MODE)"; 
    $db->bindParam(':q', $_GET['q']); 
} 

$fullQuery = $query . " ORDER BY id DESC" . " LIMIT {$paginator->getLimitSQL()}" 
$getArticles = $db->prepare($fullQuery)->execute(); 
1
$query   = "SELECT * FROM articles"; 

    $columnsQuery = []; 
    $values   = []; 

    if(isset($_GET['q']) && !empty($_GET['q'])) 
    { 
     $columnsQuery[]  = " WHERE MATCH (title) AGAINST (':q' IN NATURAL LANGUAGE MODE)"; 
     $values["q"]  = $_GET['q'];   // TRY WITHOUT COLON 
    } 

    $fullQuery = $query . implode(" ", $columnsQuery) 
     . " ORDER BY id DESC" 
     . " LIMIT {$paginator->getLimitSQL()}"; 

    $getArticles = $db->prepare($fullQuery)->execute($values); 
1

@Poizは配列の中でコロンを使うべきではないと指摘しました

助けてくれた皆さんにはThx:

+0

あなたの答えからコピーされました.. @ Poiz。しかし、私にはコロンがないはずです。あなたが問題を抱えていれば、それを削除することができます。 –

+0

あなたの答えは正しいので私から+1 .. –

+0

まったく..... .....--) – Poiz

0

の代わりにコロンを使用しないでください

$query = "SELECT * FROM articles"; 

$columnsQuery = []; 
$values  = []; 

if(isset($_GET['q']) && !empty($_GET['q'])) 
{ 
$columnsQuery[] = " WHERE MATCH (title) AGAINST (':q' IN NATURAL LANGUAGE MODE)"; 
$values[":q"] = $_GET['q']; 
} 

$fullQuery = $query . implode(" ", $columnsQuery) 
    . " ORDER BY id DESC" 
    . " LIMIT {$paginator->getLimitSQL()}"; 

$getArticles = $db->prepare($fullQuery)->execute($values); 
関連する問題