【发布时间】:2021-05-02 17:10:06
【问题描述】:
我已经使用 PDO 几年了,但我从未完全研究过何时应该使用 try 和 catch 准备和执行。
我的理解是,当数据可能包含用户输入时,您应该使用try 和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();
}
}
$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);
我对准备陈述的理解是否正确,如果不正确,我应该怎么做?
【问题讨论】: