我試圖運行一個MYSQL查詢,它將返回一個ID超過特定值的所有服務。難以與SQL WHERE>'value'語句
$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);
}
查詢不返回任何值,當我使用一個靜態值作爲比較,以「身份證」,如查詢工作正常
** **警告你的代碼可能會受到SQL注入攻擊! –
顯然service_id不是數字。在'$ query = ...'之前執行'var_dump($ service_id)'來看看裏面有什麼 – x4rf41
感謝您對此的關注,但是這段代碼在這裏取得了巨大的效果,沒有任何文本用戶輸入,被使用,我還沒有實施任何其他安全措施,因爲我沒有得到的代碼工作在第一個 – CrossGuard