是否可以在PHP变量中使用MySQL查询?

时间:2015-05-28 17:32:10

标签: php mysql

编辑:我已将查询更改为此版本,但我仍未获得任何查询 结果即使我应该。

if (isset($_POST['schbttn'])) {
$breed1 = $_POST['schbreed1'];
$breed2 = $_POST['schbreed2'];
$sex = $_POST['schsex'];
$colour = $_POST['schcolour'];
$age = $_POST['schage'];
include ('inc/dbconn.php');
// If breed2 NULL, search with this query
if ($breed2 == "NULL") {
    $search = mysqli_query($dbconn, "SELECT * FROM `lstfnd` WHERE `doglf_stat` = 'Lost' AND `doglf_breed1` = '$breed1' AND `doglf_breed2` IS NULL AND `doglf_sex` = '$sex' AND `doglf_colour` = '$colour' AND `doglf_age` = '$age'");
// Else search with this query
} else {
    $search = mysqli_query($dbconn, "SELECT * FROM `lstfnd` WHERE `doglf_stat` = 'Lost' AND `doglf_breed1` = '$breed1' AND `doglf_breed2` = '$breed2' AND `doglf_sex` = '$sex' AND `doglf_colour` = '$colour' AND `doglf_age` = '$age'");
}
$schrow = mysqli_fetch_assoc($search);
}

我尝试创建一个简单的搜索功能,用户可以通过多个字段进行搜索。

我已经拍摄了每个字段的条目

$breed1 = $_POST['breed1'];
$breed2 = $_POST['breed2'];
$sex = $_POST['sex'];
$colour = $_POST['colour'];
$age = $_POST['age'];

并通过if循环

构建查询
$query = "SELECT * FROM `table` WHERE `stat` = 'Lost'";
// If breed1 is not ALL, add to search
if ($breed1 != "ALL") {
    $query = $query." AND `breed1` = '$breed1'";
}
// If breed2 is not ALL, add to search
if ($breed2 != "ALL") {
    if ($breed2 == "NULL") {
        $query = $query." AND `breed2` IS NULL";
    } else {
        $query = $query." AND `breed2` = '$breed2'";
    }
}
// If sex is not ALL, add to search
if ($sex != "ALL") {
    $query = $query." AND `sex` = '$sex'";
}   
// If colour is not ALL, add to search
if ($colour != "ALL") {
    $query = $query." AND `colour` = '$colour'";
}
// If age is not ALL, add to search
if ($age != "ALL") {
    $query = $query." AND `age` = '$age'";
}
$query = $query.";";

并将查询放在PHP变量中,以便在运行查询时使用。

include ('inc/dbconn.php');
$search = mysqli_query($dbconn, "'.$query.'");
$schrow = mysqli_fetch_assoc($search);

但是,当我尝试显示搜索结果时,会收到错误代码。

 mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given...

我试图使用这种方法可以实现的目标是什么?如果没有,还有其他方法的建议吗?

1 个答案:

答案 0 :(得分:0)

更改此行

$search = mysqli_query($dbconn, "'.$query.'");

$search = mysqli_query($dbconn, $query);

$ query是变量,不要将其用作字符串。