PDO追加資料:例外 ■例外(try catch 構文) 例外(構造化例外)はエラー処理の一つ。エラーが起こったらメインの処理を中断し、エラー処理に飛ぶ。 PHP の場合、メイン処理は try{}内に書き、エラー処理はその直後の catch(){} に書く。 ◎日付オブジェクトでの例外の例 try { $date = new DateTime('2012/08/01'); echo $date->format('Y/m/d'); } catch (Exception $e) { echo "エラー:" . $e->getMessage(); } ◎PDO オブジェクトでの例外の例 try { $db = new PDO("mysql:dbname=hanbai","root","root"); } catch (PDOException $exception){ echo "PDO 生成エラー:"; echo $exception->getMessage(); exit; } ■PDOでの例外 ◎PDO でのエラーは通常 PDO オブジェクト生成時にしか発生しない。 PDO でのエラーを全て例外として検知するには、PDO オブジェクトに対し以下を行う必要がある。 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 例: try{ $db = new PDO("mysql:dbname=hanbai","root","root"); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->query("SET NAMES utf8;"); $sql = $db->prepare( 'SELECT * FROM $sql->bindValue( 1 , $sid ); $sql->execute(); $data = $sql->fetch(); echo $data['sid'],'<br>'; echo $data['sname'],'<br>'; echo $data['tanka'],'<br>'; } catch (PDOException $exception){ echo "PDO エラー:"; echo $exception->getMessage(); } shouhin WHERE sid = ?' ); PDO追加資料:パラメータ指定方法 ■1.bindValue の型指定 例: $sql = $db->prepare('SELECT * FROM uriage WHERE sid = ?'); $sql->bindValue( 1 , $sid ,PDO::PARAM_INT); bindValueの第三引数に変数の型を指定できる。PDO::PARAM_INT や PDO::PARAM_STRING など。 通常は型を指定する必要は無いが、LIMITのときには必要になる。 例: $sql = $db->prepare('SELECT * FROM uriage LIMIT ? , ? '); $sql->bindValue( 1 , $start ,PDO::PARAM_INT); $sql->bindValue( 2 , $count ,PDO::PARAM_INT); ■2.fetchColumn 結果が行1つで列も 1 つしか無い場合、fetchColumn を使うと早い。 例:$sql = $db->prepare('SELECT count(*) FROM uriage'); $sql->execute(); $count = $sql->fetchColumn();
© Copyright 2025 Paperzz