1

我正在尝试运行一个 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);
    }

查询不返回任何值

4

2 回答 2

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);
    }
于 2013-07-29T13:41:50.247 回答
0
$query = "SELECT id, name FROM services WHERE id > '".$service_id."'";
于 2013-07-29T13:43:02.483 回答