在Mysql查询中忽略param(如果不存在)

时间:2015-04-30 06:47:27

标签: php mysql

在PHP中,我在控制器getItems中编写了一个php函数,以便在使用javascript / jquery通过ajax调用时获取所有项目。我正在传递一个参数limit来限制从服务器获取的项目。

这样可行,但如何使用相同的方法获取所有项目?目前,当且仅当我提供limit参数值时,以下查询才有效。

"SELECT DISTINCT name, id from TABLE_NAME
        ORDER BY shared_date DESC
        LIMIT @~~limit~~@";

如何通过修改相同的查询来获取所有项目?

目前,我通过两个不同的查询来解决这个问题,一个有限制,另一个没有限制。 (我感觉很乱

2 个答案:

答案 0 :(得分: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-injectable)

答案 1 :(得分:-2)

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

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