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

SQLiteの使い方


PHPからのモジュール呼び出し

php.iniの設定をしなくてもモジュールをPHPの実行毎に呼び出すことが出来ます。
ただしセーフモードがオフでモジュールの外部呼出しが可能な様にphp.iniで設定されている必要があります。
以下はdl()関数のマニュアルにあるサンプルです。
<?php
/* sqliteモジュールがあるか判定 */
if (!extension_loaded('sqlite')) {
    /* OS毎に読み込み方を変更 */
    if (strtoupper(substr(PHP_OS, 0,3) == 'WIN')) {
        dl($dir.'/php_sqlite.dll');
    } else {
        dl('sqlite.so');
    }
}
 
/* 外部モジュールの拡張子からモジュールファイルを判定 */
// PHP_SHLIB_SUFFIXはOSの定義済み定数
if (!extension_loaded('sqlite')) {
    $prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
    dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

SQLiteデータベースに接続

PEARのDBクラスを利用してSQLiteのデータベースへ接続します。
注意する点はデータソース名の設定です。
以下は一般的なデータソース名です。
$dns = "phptype://username:password@hostspec/database"

以下はSQLiteのデータソース名です。
$dns = "sqlite:///データベースファイル名"

SQLiteのデータソース名で定義できる種類は以下の3つです。
phptype         データベースバックエンド
database        データベースファイル名
mode            ファイルへのアクセス権限
<?php
require_once("DB.php");
 
/* データソース名の設定 */
// 文字列での場合アクセス権限が0644に設定される
// $dsn = "sqlite:///test.db";
$dsn = array (
    'phptype'  => "sqlite",         // 使用するDB
    'database' => "./test.db",      // DBの保存先
    'mode'     => "0666"            // アクセス権限
);
/* DBオブジェクトの生成と接続 */
$objdb = DB::connect($dsn);
 
/* エラーチェック */
if (DB::isError($objdb)) {
    echo $objdb->getMessage();
    exit('接続できません');
}
 
$message = "";
 
/* テーブルの作成 */
$query = <<<QUERY
CREATE TABLE account_tbl (
    id INTEGER NOT NULL,
    name VARCHAR(64) NOT NULL,
    email VARCHAR(128),
    PRIMARY KEY (id)
);
QUERY;
/* クエリ実行 */
$result = $objdb->query($query);
if (DB::isError($result)){
    $message .= $result->getMessage()."n";
}
 
/* 行の挿入 */
$query = "INSERT INTO account_tbl VALUES(1,'高橋','yujiro@rakuto.net') ";
$result = $objdb->query($query);
if (DB::isError($result)){
    $message .= $result->getMessage();
}
$message .= $objdb->affectedRows()."行を挿入しました。n";
 
/* データの取得 */
$query = "SELECT * FROM account_tbl";
$result = $objdb->getAll($query,DB_FETCHMODE_ASSOC);
if (DB::isError($result)){
    $message .= $result->getMessage()."n";
}
 
/* 結果の出力 */
echo $message;
foreach ($result as $row=> $cols){
    echo "----------------------n";
    echo "id    = {$cols['id']}n";
    echo "name  = {$cols['name']}n";
    echo "email = {$cols['email']}n";
    echo "----------------------n";
}
 
/* DBとの接続を終了 */
$objdb->disconnect();
?>


実行結果

1行を挿入しました。
----------------------
id = 1
name = 高橋
email = yujiro@rakuto.net
----------------------

<<SQLiteとは
SQLiteをやってみよう

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でSQLite!!
  •  SQLiteとは
  •  SQLiteの使い方

キーワード検索

キーワード



最近の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.