2016-10-26 33 views
1

我正在处理搜索查询,并且我碰到了一个小凹凸......所以,如您在下面的代码中看到的那样,我将值添加到数组中以稍后在脚本,但它并不真正工作...所以当我var_dumped所有这一切,它返回就像它应该但是: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']; 
} 

$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

$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

是从你的答案复制.. @ Poiz。但是我知道应该没有冒号......如果你有问题,我可以删除它。 –

+0

你的回答是正确的,所以我+1。 –

+0

不是所有..... ;-) – Poiz

0

的地方,而我理解了它之后,所以你不应该使用冒号,你不应该使用的参数,同时在结合查询,和@Poiz一样指出我不应该在数组中使用冒号

Thx给所有试过帮助的人:)