PHP PDO execute () vs. fetch ()?
Mam szybkie pytanie, które mam nadzieję ma szybką i jasną odpowiedź.
W podręczniku php.com stwierdza, że execute () po powiązaniu wartości z przygotowanym zapytaniem zwróci true w przypadku sukcesu i false w przypadku niepowodzenia. Wystarczająco proste.
Chciałem się tylko upewnić, że to jasne. Wartości zwracane w execute () odpowiadają błędom bezpośrednim. Na przykład, jeśli baza danych w jakiś sposób zgasła po udanym połączeniu, a zapytanie nie mogło zostać wykonane - lub jakiś inny nadzwyczajny problem.
Rozważ jakiś kod:
protected function territoryCheck($numberOut)
{
$this->numberOut = $numberOut;
//Execute test
$this->checkConnect();
$stmt = $this->dbh->prepare("SELECT t_id FROM Territory WHERE t_id = :param1")
$stmt->bindParam(':param1', $this->numberOut);
$stmt->execute();
//Determine value of test
if($stmt == FALSE)
{
return FALSE;
}
}
Jestem raczej pewien, że to nie zadziała tak, jak chcę. Chodzi o to, aby zobaczyć, czy t_id istnieje w bazie danych na podstawie tego, czy istnieje odpowiednia wartość parametru. W takim przypadku muszę użyć $ stmt-> fetch (). Czy mam rację, mówiąc to?
Każda pomoc jest doceniana.
Edytuj: Czy w tym samym sensie byłoby rozsądne - czy też powinienem powiedzieć „najlepsza praktyka” - umieścić
//Execute test
$this->checkConnect();
$stmt = $this->dbh->prepare("SELECT t_id FROM Territory WHERE t_id = :param1")
$stmt->bindParam(':param1', $this->numberOut);
$stmt->execute();
wewnątrz try-catch od PDO zwraca wyjątki?