PHP の ドキュメント上の サンプルを踏襲しています 接続 接続時は必ず PDOException をスローします。なので、setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION) は実行されていません
<?php
session_cache_limiter('nocache');
session_start();
header( "Content-Type: text/html; charset=utf-8" );
/* ドライバ呼び出しを使用して MySQL データベースに接続する */
$dsn = 'mysql:host=mysql145.phy.lolipop.lan;dbname=LAA999999-mydb';
$user = 'LAA999999';
$password = 'password';
try {
$dbh = new PDO($dsn, $user, $password);
print "DB 接続に成功しました";
}
catch (PDOException $e) {
echo '接続に失敗しました: ' . $e->getMessage();
}
// ***************************
// 解放( 接続解除 )
// ***************************
$dbh = null;
// ***************************
// デバッグ用
// ***************************
print "<pre>";
print_r($_GET);
print_r($_POST);
print_r($_SESSION);
print "</pre>";
?>
複数行の順次読込み 結果を簡単に確認する為に、text/plain で出力しています
<?php
session_cache_limiter('nocache');
session_start();
header( "Content-Type: text/plain; charset=utf-8" );
/* ドライバ呼び出しを使用して MySQL データベースに接続する */
$dsn = 'mysql:host=mysql145.phy.lolipop.lan;dbname=LAA999999-mydb';
$user = 'LAA999999';
$password = 'password';
try {
// ***************************
// 接続
// ***************************
$dbh = new PDO($dsn, $user, $password);
// 接続以降で try 〜 catch を有効にする設定
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
print "DB 接続に成功しました\n";
}
catch (PDOException $e) {
print '接続に失敗しました: ' . $e->getMessage();
}
// ***************************
// ループ読み出し
// ***************************
$sql = 'SELECT * from 社員マスタ where 氏名 like ?';
try {
// まず準備する( prepare )
$stmt = $dbh->prepare($sql);
// SQL の変わる部分をバインドする
// bindValue は、定数・変数どちらでも可
$stmt->bindValue(1, "%田%", PDO::PARAM_STR);
// 実行する
$stmt->execute();
// 読み出す( FETCH_BOTH : 両方 / FETCH_ORI_NEXT : 通常順次カーソル )
while ($row = $stmt->fetch(PDO::FETCH_BOTH, PDO::FETCH_ORI_NEXT)) {
$data = "{$row[0]}\t{$row[1]}\t{$row[2]}\n";
print $data;
print_r( $row );
}
// ***************************
// ステートメントの解放
// ***************************
$stmt = null;
}
catch (Exception $e) {
print "読み出しに失敗しました: {$e->getMessage()}";
}
// ***************************
// 解放( 接続解除 )
// ***************************
$dbh = null;
// ***************************
// デバッグ用
// ***************************
print_r($_GET);
print_r($_POST);
print_r($_SESSION);
?>
読込みながら更新
<?php
session_cache_limiter('nocache');
session_start();
header( "Content-Type: text/plain; charset=utf-8" );
/* ドライバ呼び出しを使用して MySQL データベースに接続する */
$dsn = 'mysql:host=mysql145.phy.lolipop.lan;dbname=LAA999999-mydb';
$user = 'LAA999999';
$password = 'password';
try {
// ***************************
// 接続
// ***************************
$dbh = new PDO($dsn, $user, $password);
// 接続以降で try 〜 catch を有効にする設定
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
print "DB 接続に成功しました\n";
}
catch (PDOException $e) {
print '接続に失敗しました: ' . $e->getMessage();
}
// ***************************
// ループ読み出し
// ***************************
$sql = 'SELECT * from 社員マスタ where 氏名 like ?';
$sql2 = 'update 社員マスタ set 生年月日 = 生年月日 + 1 where 社員コード = ?';
try {
// まず準備する( prepare )
$stmt = $dbh->prepare($sql);
// SQL の変わる部分をバインドする
// bindValue は、定数・変数どちらでも可
$stmt->bindValue(1, "%田%", PDO::PARAM_STR);
// 実行する
$stmt->execute();
// 更新用の SQL を準備する
$stmt2 = $dbh->prepare($sql2);
// 読み出す( FETCH_BOTH : 両方 / FETCH_ORI_NEXT : 通常順次カーソル )
while ($row = $stmt->fetch(PDO::FETCH_BOTH, PDO::FETCH_ORI_NEXT)) {
$data = "{$row[0]}\t{$row[1]}\t{$row[2]}\n";
print $data;
print_r( $row );
// 男性のみ更新
if ( $row["性別"] == 0 ) {
$stmt2->bindValue(1, $row["社員コード"], PDO::PARAM_STR);
$stmt2->execute();
}
}
// ***************************
// ステートメントの解放
// ***************************
$stmt2 = null;
$stmt = null;
}
catch (Exception $e) {
print "読み出しに失敗しました: {$e->getMessage()}";
}
// ***************************
// 解放( 接続解除 )
// ***************************
$dbh = null;
// ***************************
// デバッグ用
// ***************************
print_r($_GET);
print_r($_POST);
print_r($_SESSION);
?>
このページの PDF





※ エキスパートモードで表示しています
アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります


