[英]SELECT id WHERE id equals a passed value
我通過以下方式將“id”值從一個頁面media_main.php傳遞給另一個player.php:
<a href="javascript:;" onclick="return popitup('player.php?pid=<?php echo ("$row->id");?>')" title="Listen">
在player.php頁面上,我想選擇某些數據,其中id等於傳遞的id。 到目前為止我有這個:
$query = "SELECT id, media_date, media_title, given_by, filename FROM media WHERE id = ?? ORDER BY id DESC";
我不知道如何處理WHERE子句,因為它將更改而不是靜態數字。 我只想在id等於傳遞的id值時選擇數據。
從代碼的外觀來看,您通過URL參數( pid
)傳遞ID,在這種情況下,您只需要轉義字符串以防止SQL注入並使用結果ID構建查詢:
$pid = mysql_real_escape_string($_GET['pid']);
$query = "SELECT id, media_date, media_title, given_by, filename FROM media WHERE id = '$pid' ORDER BY id DESC";
檢查傳遞的值是否為數字可能是明智的。
此外,如果id
是主/唯一鍵,那么您可以從查詢中刪除ORDER BY
子句,因為它沒有任何區別。
編輯答案已按照以下評論中的建議進行了更新,以包含SQL參數的引號。
除了Clive的響應,如果您知道ID只是數字,您可以將其轉換為Integer而不是轉義它。
如果有任何錯誤輸入,它只會將其轉換為0。
$pid = (int) $_GET['pid'];
$query = "SELECT id, media_date, media_title, given_by, filename FROM media WHERE id = '$pid' ORDER BY id DESC";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.