0
我懷疑是否準備好的語句應該在try/catch塊之內還是之外。在try/cach內部或外部準備好聲明?
(這是我的用戶級別的示例方法)
我應該這樣做嗎?
public function getEmail($id_user) {
$this->_sql = 'SELECT Email FROM '.TBL_USERS.' WHERE IdUser = :id_user';
$stmt = $this->_db->prepare($this->_sql);
try {
$stmt->bindParam(':id_user', $id_user, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetchObject();
if (is_object($row)) {
return $row->Email;
}
return NULL;
} catch (PDOException $e) {
throw $e;
}
}
or this?
public function getEmail($id_user) {
$this->_sql = 'SELECT Email FROM '.TBL_USERS.' WHERE IdUser = :id_user';
try {
$stmt = $this->_db->prepare($this->_sql);
$stmt->bindParam(':id_user', $id_user, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetchObject();
if (is_object($row)) {
return $row->Email;
}
return NULL;
} catch (PDOException $e) {
throw $e;
}
}
總是在'try'裏面做準備。 SQL語法錯誤可以/將潛入。 –
如果你不打算做任何有意義的事情,除非有例外,否則根本就不能理解它。重新拋出這樣的異常只會讓堆棧跟蹤更難以閱讀。 – Sammitch