簡単な質問がありますが、迅速で明確な回答が得られることを願っています。
php.comのマニュアルには、準備されたクエリに値をバインドした後のexecute()は、成功した場合はtrueを返し、失敗した場合はfalseを返すと記載されています。十分に単純です。
私はこれを明確にしたかっただけです。execute()で返される値は、直接エラーに対応します。たとえば、接続が成功した後にデータベースが何らかの理由でダウンし、クエリを実行できなかった場合、またはその他の特別な問題が発生した場合です。
いくつかのコードを考えてみましょう:
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;
}
}
私はこれが私が望むように動作しないとかなり確信しています。重要なのは、パラメータに対応する値があるかどうかに基づいて、t_idがデータベースに存在するかどうかを確認することです。その場合、$ stmt-> fetch()を使用する必要があります。私はそれを言うのは正しいですか?
どんな助けでも大歓迎です。
編集:同じ方針に沿って、置くのは賢明でしょうか-またはベストプラクティスと言うべきです-
//Execute test
$this->checkConnect();
$stmt = $this->dbh->prepare("SELECT t_id FROM Territory WHERE t_id = :param1")
$stmt->bindParam(':param1', $this->numberOut);
$stmt->execute();
PDOは例外を返すので、try-catch内ですか?