PDO追加資料:例外 例外(try catch 構文) PDOでの例外

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();