2015-04-30 37 views
0

在PHP中,我在控制器getItems中編寫了一個php函數,以便在使用javascript/jquery通過ajax調用時獲取所有項目。我傳遞一個參數limit以限制從服務器獲取的項目。忽略參數,如果不存在,在Mysql查詢中

這工作正常,但如何使用相同的方法來獲取所有的項目?目前,只有當我提供limit參數值時,以下查詢才能正常工作。

"SELECT DISTINCT name, id from TABLE_NAME 
     ORDER BY shared_date DESC 
     LIMIT @[email protected]"; 

如何通過修改相同的查詢來獲取所有項目?

目前,我解決這個問題有兩個不同的查詢,其中一個有限制,另一個沒有限制。 (我覺得凌亂

+0

是如何你建立你的查詢? – Cerbrus

+0

@Cerbrus我對此沒有太多的想法,但在我的同事的幫助下(他有點忙),他說它建立在我們辦公室使用的自定義構建查詢上。 –

+0

雖然這不會回答_「如何」_。你用什麼代碼將該參數添加到查詢中? – Cerbrus

回答

-2
$limit = ''; 
if ($paramLimit != NULL && is_int($paramLimit)) { 
    $limit = " LIMIT $paramLimit "; 
} 

"SELECT DISTINCT name, id from TABLE_NAME 
     ORDER BY shared_date DESC 
     $limit"; 
+1

這只是要求SQL注入。 – Cerbrus

+0

他只是問了邏輯,我放了。它很好地提醒關於sql注入。提醒他這件事 –

0

的一種方法是設定的上限爲getItems可選參數。 例如是這樣的:

function getItems($limit=false){ 
    $sql = "SELECT DISTINCT name, id from TABLE_NAME 
    ORDER BY shared_date DESC " 
    if($limit){ 
     $sql .= "LIMIT $limit"; 
    } 
    ... 
} 

我不知道,如果你要提交查詢在一份聲明中或沒有,所以我把它像這樣(SQL-注射)