1

您好 php 的另一个问题我不确定为什么它不起作用,但这里是代码:

        <?php include 'db.inc.php';function search_results($keywords){$returned_results = array();
$where = "";

$keywords = preg_split('/[\s]+/', $keywords);
$total_keywords = count($keywords);


foreach($keywords as $key=>$keyword){
    $where .="`keywords` LIKE '%$keyword%'";
    if ($key != ($total_keywords - 1 )){
        $where .= " AND ";
    }
}

$results = "SELECT `document_name` ,LEFT(`first_paragraph`,70) as `first_paragraph` FROM `documents` WHERE $where ";
$results_num = ($results = mysql_query($results)) ? mysql_num_rows($results) : 0 ;
if ($results_num == 0){
    return false;
}else {

    while($results_row = mysql_fetch_assoc($results)){
    $returned_results[] = array(
                'title' => $results_row['document_name'],
                'description' => $results_row['first_paragraph']
    );
}

return $returned_results;


}
}

?>   

我目前正在尝试使用 PDO 来实现它,但我不确定如何.. 我不确定这是否是问题,但我没有从 mysql Thx 得到任何东西!

4

1 回答 1

2

现在不要将整个 WHERE 条件放在单引号中,您正在执行以下操作:

SELECT document_name ,LEFT(first_paragraph,70) as first_paragraph FROM documents WHERE '`keywords` LIKE '%keyword%''

它应该只是:

SELECT document_name ,LEFT(first_paragraph,70) as first_paragraph FROM documents WHERE `keywords` LIKE '%keyword%'

您可以通过一些基本的调试轻松发现这一点。

  • 总是编写代码来捕获和记录数据库错误(你没有这样的代码)
  • 如果数据库错误没有告诉您您想要什么,请记录您尝试运行的查询并尝试直接在数据库上运行它。

最后,我在这里根本看不到任何 PDO,您正在使用mysql_*已弃用且不应使用的 functoins。

于 2012-12-26T17:40:48.137 回答