首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PDO bindParam返回带有错误参数的相同结果

PDO bindParam返回带有错误参数的相同结果
EN

Stack Overflow用户
提问于 2018-06-03 04:26:57
回答 2查看 53关注 0票数 0
代码语言:javascript
复制
public function getStudent($id){
    $sth = $this->con->prepare("SELECT * FROM students WHERE id=:id");
    $sth->bindParam("id", $id, PDO::PARAM_INT);
    $sth->execute();
    $student = $sth->fetchObject();
    return $student;
}

(1) http://localhost/slim-framework/public/api/v1/student/1

(2) http://localhost/slim-framework/public/api/v1/student/1fgff

通过使用上述代码的'GET‘请求,上面的URL 1和2给了我相同的结果,但假设结果并非如此。

请帮助我如何使URL 2标记错误,因为它不是一个整数?

EN

回答 2

Stack Overflow用户

发布于 2018-06-03 04:39:38

嗨,我希望这对你有帮助。

在您的情况下,它将是

代码语言:javascript
复制
public function getStudent(int $id){
 .......
}

如果id是其他的而不是int,你会得到php错误

http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration

票数 0
EN

Stack Overflow用户

发布于 2018-06-03 05:10:32

代码语言:javascript
复制
public function getStudent($id){
    if(is_numeric($id)) {
        $sth = $this->con->prepare("SELECT * FROM students WHERE id=:id");
        $sth->bindParam("id", $id);
        $sth->execute();
        $sth->fetchObject();
        return true;
    }else {
        return false;
    }
}

现在,我按照@u_mulder和@Federkun建议,使用is_numeric()方法检查id是否为整数,从而使其正常工作。

感谢大家的努力。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50660885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档