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标记错误,因为它不是整数?
答案 0 :(得分:0)
嗨,我希望这会对你有所帮助
在你的情况下,它将是
public function getStudent(int $id){
.......
}
如果id是别的而不是int,你将得到php错误
http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration
答案 1 :(得分:0)
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;
}
}
我现在通过使用is_numeric()方法跟踪@u_mulder和@Federkun建议来检查id是否为整数。
感谢大家的努力。