0
$publication_year = $_GET['publication_year'];
$conn = db_connect('guest');

……

<?php

$query='SELECT DISTINCT publication_id FROM publications ';
if(isset($keyword_label) && isset($publication_year)){
    $query.=' WHERE (publication_key_1="'.$keyword_label.'" OR publication_key_2="'.$keyword_label.'" OR publication_key_3="'.$keyword_label.'" OR 
    publication_key_4="'.$keyword_label.'" OR publication_key_5="'.$keyword_label.'" OR publication_key_6="'.$keyword_label.'" OR
    publication_key_7="'.$keyword_label.'") AND publication_year="'.$publication_year.'"';
}
else if(isset($publication_year)){
    $query.=' WHERE publication_year="'.$publication_year.'"';
}
else if(isset($keyword_label)){
    $query.='WHERE publication_key_1="'.$keyword_label.'" OR publication_key_2="'.$keyword_label.'" OR publication_key_3="'.$keyword_label.'" OR 
    publication_key_4="'.$keyword_label.'" OR publication_key_5="'.$keyword_label.'" OR publication_key_6="'.$keyword_label.'" OR
    publication_key_7="'.$keyword_label.'"';
}
$query.=' ORDER BY publication_year DESC';

$result = $conn->query($query);
if(!$result) {
    echo 'Could not run query: ' . mysql_error();
    echo mysqli_error($conn);
}

在我的网站上返回

Could not run query:

没有得到确切的错误。

当然,如果我不调试它,我会得到一个空结果。

你能告诉我为什么会这样吗?

我是 LAMP 堆栈(apache 2.2.2.,MySQL 客户端版本:5.5.32,PHP 5.3.10-1ubuntu3.8 with Suhosin-Patch (cli))和 phpmyadmin,我在其中加载了除此之外的可用的现成 mysql 代码。

运行查询

SELECT DISTINCT publication_id
FROM publications
ORDER BY publication_year DESC

工作得很好并返回结果。

4

1 回答 1

0

尝试这个

    $query='SELECT DISTINCT publication_id FROM publications WHERE 1=1 ';
 if(isset($keyword_label) && isset($publication_year)){
 $query.=' AND (publication_key_1="'.$keyword_label.'" OR publication_key_2="'.$keyword_label.'" OR publication_key_3="'.$keyword_label.'" OR 
publication_key_4="'.$keyword_label.'" OR publication_key_5="'.$keyword_label.'" OR publication_key_6="'.$keyword_label.'" OR
publication_key_7="'.$keyword_label.'") AND publication_year="'.$publication_year.'"';
}
if(isset($publication_year)){
$query.=' AND publication_year="'.$publication_year.'"';
}
if(isset($keyword_label)){
$query.=' AND publication_key_1="'.$keyword_label.'" OR publication_key_2="'.$keyword_label.'" OR publication_key_3="'.$keyword_label.'" OR 
publication_key_4="'.$keyword_label.'" OR publication_key_5="'.$keyword_label.'" OR publication_key_6="'.$keyword_label.'" OR
publication_key_7="'.$keyword_label.'"';
}
$query.=' ORDER BY publication_year DESC';

编辑:

尝试改变这个

   if(!$result) {

对此

  if( $result == false ) { 
于 2013-09-24T10:49:56.850 回答