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标记错误,因为它不是一个整数?
发布于 2018-06-03 04:39:38
嗨,我希望这对你有帮助。
在您的情况下,它将是
public function getStudent(int $id){
.......
}
如果id是其他的而不是int,你会得到php错误
http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration
发布于 2018-06-03 05:10:32
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是否为整数,从而使其正常工作。
感谢大家的努力。
https://stackoverflow.com/questions/50660885
复制相似问题