如何获取rest api输出在url上输入的行数

I created a REST API and I've come to the point where I want to output 20 rows (e.g.) if I access the API like http://api.randomuser.me/?results=20.

This is my PHP code. I am new to Slim and AngularJS, please help.

function getUsers() {
    $sql = "select * FROM user";
    try {
        $db = getConnection();
        $stmt = $db->query($sql);  
        $users = $stmt->fetchAll(PDO::FETCH_OBJ);
        $db = null;
        echo json_encode($users);
    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }
}

Thanks in advance.

duancha1065
duancha1065 目前还不清楚你在问什么。创建一个给定输入时要获取的内容的示例。
大约 5 年之前 回复
dqpu4988
dqpu4988 大家好,我不是试图通过url参数设置行的限制。请访问api.randomuser.me/?results=20到我试图获取的地方,,,,我每次尝试显示我的数据库的更多行时,我的数据库示例30行显示api.randomuser.me/?results=30是由我的角度加载访问更多应用程序。
大约 5 年之前 回复
drlh197610
drlh197610 那是你的所有代码吗?你的实际问题是什么?
大约 5 年之前 回复
dpkrh2444
dpkrh2444 您将当前行限制为最大值。10在您的SQL查询中。您可以使用$_GET参数(如果存在)覆盖您设置的限制,但您需要验证并过滤它,因为它是用户输入。
大约 5 年之前 回复

2个回答

You will have to change your sql... something like

$limit = $_GET['limit'];
/clean your input make sure it has a value using isset,empty etc
$sql = "select * FROM user ORDER BY id LIMIT ".$limit; //this is a quick example rather use pdo bound parameters.
    try {
        $db = getConnection();
        $stmt = $db->query($sql);

        $users = $stmt->fetchAll(PDO::FETCH_OBJ);
        $db = null;
        echo json_encode($users);
    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }
}

Remember to clean your input and use bound parameters in your query.

</div>
duanbi3385
duanbi3385 我不想限制我的输出我想通过访问/?results = 30来访问/?results = 20,30行数据来访问数据行等等。
大约 5 年之前 回复
douzhuoxia0587
douzhuoxia0587 我的appologies,我从未真正试过限制条款。 每天都要学习新的东西谢谢...实际上我收回了这篇文章的帖子stackoverflow.com/questions/2269840/how-bindvalue-in-limit
大约 5 年之前 回复
dsgd4654674
dsgd4654674 您不能对limit子句使用bound参数 - 除非您正在调用存储过程
大约 5 年之前 回复
dos8244
dos8244 尝试实际阅读答案。 我在代码示例和答案中明确说明您应该使用绑定参数并清理输入。
大约 5 年之前 回复
dongzha0813
dongzha0813 非常好,我的限制参数将是; DROP DATABASE; - 。
大约 5 年之前 回复

Read the results parameter in a variable, and use it in the LIMIT clause instead of the hard coded 10

function getUsers() {

    try {
        $db = getConnection();

        $limit = $_GET["results"];
        // validate $limit for valid value here and continue only if  
        // using something like 
        // $limit = $db->real_escape_string($limit);
        // and continue only if successfully validated

        $sql = "select * FROM user ORDER BY id LIMIT ".(strlen($limit) ? $limit : 10);
        $stmt = $db->query($sql);  
        $users = $stmt->fetchAll(PDO::FETCH_OBJ);
        $db = null;
        echo json_encode($users);
    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }
}
doukuo9116
doukuo9116 酷,另一个过分信任用户并将他的数据库置于危险之中的人。
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐