我正在尝试运行一个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);
}
查询不返回任何值
答案 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."'";