难以使用sql WHERE> '价值'声明

时间:2013-07-29 13:37:13

标签: php mysql

我正在尝试运行一个MYSQL查询,该查询将返回id高于特定值的所有服务。当我使用静态值作为'id'的比较时,查询工作正常,例如:

$query = "SELECT id, name FROM services WHERE id > '14'";
    if ($query_run = mysqli_query($link, $query)) {
        while ($results = mysqli_fetch_array($query_run)) {
            echo $service_id = $results['id'].'<br>';
            echo $service_name = $results['name'].'<br>';
        }
    } else {
        echo mysqli_error($link);
    }

但是,如果我使用这样的变量:

$query = "SELECT id, name FROM services WHERE id > $service_id";
    if ($query_run = mysqli_query($link, $query)) {
        while ($results = mysqli_fetch_array($query_run)) {
            echo $service_id = $results['id'].'<br>';
            echo $service_name = $results['name'].'<br>';
        }
    } else {
        echo mysqli_error($link);
    }

查询不返回任何值

2 个答案:

答案 0 :(得分:3)

当您对该值进行硬编码时,您会在其周围加上引号。 确保$ service_id表示为字符串。

尝试

$query = "SELECT id, name FROM services WHERE id > '$service_id'";
    if ($query_run = mysqli_query($link, $query)) {
        while ($results = mysqli_fetch_array($query_run)) {
            echo $service_id = $results['id'].'<br>';
            echo $service_name = $results['name'].'<br>';
        }
    } else {
        echo mysqli_error($link);
    }

答案 1 :(得分:0)

$query = "SELECT id, name FROM services WHERE id > '".$service_id."'";