rakutoネット
お問合せ 免責事項 Q&A 掲示板 サイト管理 リンク サイトマップ
HOME > PDOの概要

PDOの概要


PDOを利用したSQLiteデータベース接続

PECLのPDOクラスを利用してSQLiteのデータベースへ接続します。
注意する点はSQLiteのバージョンです。
PDOクラスではSQLite3.xを使用しています。
以前のバージョンのSQLiteで作成されたデータベースを開こうとすると以下のような
エラーが出てしまいます。
'PDOException' with message '26 file is encrypted or is not a database'

SQLite3.xのコマンドラインユーティリティを使用して確認出来ます。

以下の例ではtry・catchを連発しておりますが、ご容赦ください。
正しい使い方などはDo You PHP?さんを参考にされると良いかと思います。
また、PDOをつかったOracleへの接続例もとても参考になります。

<?php
/* PDO データベースハンドルの生成 */
try {
    $dbh = new PDO('sqlite:test.db','', '');
} catch (PDOException $exception){
    echo "PDO生成時:";
    echo $exception->getMessage();
    echo "n";
    exit();
}
 
/* エラーモードの設定(例外処理を有効) */
$dbh->setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION);
 
/* テーブルの作成 */
/* idをプライマリ宣言し自動シーケンス */
$query = <<<QUERY
CREATE TABLE account_tbl (
    id INTEGER,
    number INTEGER,
    name VARCHAR(64) NOT NULL,
    email VARCHAR(128),
    PRIMARY KEY (id)
);
QUERY;
try {
    $dbh->query($query); 
} catch (PDOException $exception){
    echo "テーブルの作成時:";
    echo $exception->getMessage();
    echo "n";
}
 
/* ステートメントの生成 */
$query = "INSERT INTO account_tbl (number,name,email) VALUES (:number,:name,:email) ";
$stmt = $dbh->prepare($query); 
 
/* バインド変数を設定 */
$stmt->bindParam(':number',$number, PDO_PARAM_INT);
$stmt->bindParam(':name',  $name, PDO_PARAM_STR, 64);
$stmt->bindParam(':email', $email, PDO_PARAM_STR, 128);
 
/* 行の挿入 */
$number = 30248;
$name = '高橋'; 
$email = 'yujiro@rakuto.net'; 
try {
    $stmt->execute(); 
} catch (PDOException $exception){
    echo "行の挿入時1:";
    echo $exception->getMessage();
    echo "n";
}
 
$number = 45567;
$name = '藤井'; 
$email = 'fuzy@rakuto.net'; 
try {
    $stmt->execute(); 
} catch (PDOException $exception){
    echo "行の挿入時2:";
    echo $exception->getMessage();
    echo "n";
}
 
/* ステートメントの開放 */
$stmt = null; 
 
/* データの取得 */
$stmt = $dbh->prepare('SELECT * FROM account_tbl'); 
$stmt->execute();
$cols = array();
while ($cols = $stmt->fetch(PDO_FETCH_ASSOC)) { 
    echo "----------------------n";
    echo "id    = {$cols['id']}n";
    echo "number= {$cols['number']}n";
    echo "name  = {$cols['name']}n";
    echo "email = {$cols['email']}n";
    echo "----------------------n";
} 
 
/* ステートメントの開放 */
$stmt = null;
?>

実行結果

----------------------
id = 1
number= 30248
name = 高橋
email = yujiro@rakuto.net
----------------------
----------------------
id = 2
number= 45567
name = 藤井
email = fuzy@rakuto.net
----------------------

<<PDO(PHP Data Objects)とは
PDOでSQLite!! PDOクラスリファレンス>>

PHPリング

@PHP.ring Home
<5 <1 Random List 1> 5>

rktSQLite

  • sourceforge.jp

広告


アマゾン検索

サーチ:
Amazon.co.jpアソシエイト

カテゴリ

  •  Templateエンジンのすすめ Templateエンジンのすすめ
  •  SQLiteをやってみよう SQLiteをやってみよう
  •  SQLite SQLコマンド一覧 SQLiteコマンド一覧
  •  SQLite 管理プログラムSQLite 管理
  •  はじめてのEclipse はじめてのEclipse
  •  PHP SQLiteのTIPS PHP SQLiteのTIPS
  •  サンプル サンプル/ダウンロード
  •  リンク リンク
  •  掲示板 掲示板

メニュー

  •  PDO(PHP Data Objects)とは
  •  PDOの概要
  •  PDOクラスリファレンス
  •  データベースハンドルクラス
  •  ステートメントクラス

キーワード検索

キーワード



最近のTB

  •  2006/03/13さくらのブログに挑戦[rakutoネットブログ]
  •  2006/01/20レーザーチャートの作成方法[脳内研究所]

Summary

  •     ATOM(XML)
  •     RDF(XML)
  •     RSS0.92(XML)
  •     RSS2.0(XML)

Powered by

  •     PHP
  •     Smarty
  •     SQLite
  •     MySQL
Copyright (C) 2005 `rakuto.net' All Rights Reserved.