簡體   English   中英

SELECT id WHERE id等於傳遞的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM