我已经使用 PDO 几年了,但我从未充分研究过何时应该使用try和准备和执行catch。
我的理解是,当数据可能包含用户输入时,您应该使用tryand 。catch
所以这个例子的代码是安全的:
public function getDetails($filename, $what){
$query = $this->handler->prepare('SELECT * FROM videos WHERE v_fileName = :v_fileName');
try{
$query->execute([
':v_fileName' => $filename
]);
}catch(PDOException $e){
return $e->getMessage();
}
}
Run Code Online (Sandbox Code Playgroud)
$filename在此示例中,内容来自 URL。
例如,当没有从 URL 中获取任何内容时,它也会完全保存:
$query = $this->handler->prepare('SELECT * FROM videos WHERE u_id = :u_id ORDER BY v_id LIMIT :climit,1');
$query->execute([
':u_id' => $this->user->getChannelId($userid),
':climit' => $optional[1]
]);
$fetch = $query->fetch(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)
我对准备陈述的理解是否正确?如果不正确,我该怎么做?