トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

PHP & SQLite

SQLite 関数 直接操作

 Windows & PHP5

PHP5はSQLiteが標準で使える。
○PHP.ini の編集
Windows 版では PDO も有効にする必要があります。PHP 5.1.0 以降、 PDO に依存するようになったからです。

extension=php_pdo.dll
extension=php_sqlite.dll
を加える(順序関係あり)

○実行
php test.php

 Linux & PHP4

○SQLiteのインストール

pear install sqlite

○PHP.ini,php-cli.iniの編集

extension=sqlite.so
を加える

○実行
php test.php


 Linux & PHP5 & sqlite2

1.yumでphp-develをインストールする

   # yum install php-devel

2.sqliteのソースをダウンロードする

gitリポジトリからバージョンに合ったPHPのソースからsqlite2のソースをコピーする。
http://git.php.net/?p=php-src.git;a=tags
解凍したディレクトリの

ext/sqlite

が sqlite2 のソース。
sqlite_For_5.3.3.zip(453)

3.コンパイルとインストール

   # cd ext/sqlite
   # phpize
   # ./configure
   # make

手動でsqlite.so を移動するか

   # make install

これで/usr/lib64/php/modules(32bitは、/usr/lib/php/modules)にsqlite.soがコピーされる

4.phpの設定を編集する

   # vi /etc/php.d/sqlite2.ini

以下の内容を記載する

   extension = sqlite.so


 Linux & PHP5 & sqlite2 (古いやり方)

http://rvrsti.blog.so-net.ne.jp/archive/c10363734-1

1.yumでphp-develをインストールする

   # yum install php-devel

2.sqliteのソースをダウンロードする

   # wget http://pecl.php.net/get/SQLite-1.0.3.tgz

SQLite-1.0.3.tgz(279)

3.ソースを展開して、環境を設定する

   # tar xzf SQLite-1.0.3.tgz
   # cd SQLite-1.0.3
   # phpize
   # ./configure

4.このままだとmakeでエラーになるので一部修正

   # vi sqlite.c

   56行目
   static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };
   ->行を削除 //でコメントアウトでOK

   125行目
   PHP_FE(sqlite_open, arg3_force_ref)
   ->arg3_force_refを third_arg_force_refに変更
   PHP_FE(sqlite_open, third_arg_force_ref)

   126行目
   PHP_FE(sqlite_popen, arg3_force_ref)
   ->arg3_force_refを third_arg_force_refに変更
   PHP_FE(sqlite_popen, third_arg_force_ref)

5.コンパイル、インストール

   # make

手動でsqlite.so を移動するか

   # make install

これで/usr/lib64/php/modulesにsqlite.soがコピーされる

6.phpの設定を編集する

   # vi /etc/php.d/sqlite.ini

以下の内容を記載する

   extension = sqlite.so

 コード

http://study.rakuto.net/php/sqlite/sqlite_step/
のそのまま

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php    
$sqliteerror = null;
 
/* SQLiteハンドルの取得 */
$dbh = sqlite_open('test.db', '0666', $sqliteerror);
 
/* テーブルの作成 */
/* idをプライマリ宣言し自動シーケンス */
$query = <<<QUERY
CREATE TABLE account_tbl (
    id INTEGER,
    number INTEGER,
    name VARCHAR(64) NOT NULL,
    email VARCHAR(128),
    PRIMARY KEY (id)
);
QUERY;
$result = sqlite_query($query, $dbh);
 
/* ステートメントの生成 */
$query = "INSERT INTO account_tbl (number,name,email) VALUES ".
                "('30248','高橋','yujiro@rakuto.net') ";
$result = sqlite_query($query, $dbh);
 
$query = "INSERT INTO account_tbl (number,name,email) VALUES ".
                "('45567','藤井','fuzy@rakuto.net') ";
$result = sqlite_query($query, $dbh);
 
 
/* データの取得 */
$result = sqlite_query('SELECT * FROM account_tbl', $dbh);
 
$cols = array();
while ($cols = sqlite_fetch_array($result, SQLITE_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";
} 
 
/* ステートメントの開放 */
$result = null;
?>

PDO

 5.3.3以降

一番メジャーな方法。
PHP5.3.3以上ならば、標準でPDOが使えるはず。
もし使えない場合は、

/etc/php.d/pdo.ini
/etc/php.d/pdo_sqlite.ini

等の設定を見直す。

 5.3.3以前

http://codezine.jp/article/detail/433
PDOはPHP 5.1から標準で搭載されるようになりました。使用しているPHPのバージョンが5.1以降ならば、以下の設定を「php.ini」に追加するだけでPDOを利用することができます。

UNIX系の場合

extension=pdo.so
extension=pdo_mysql.so
extension=pdo_pgsql.so
extension=pdo_sqlite.so
extension=pdo_firebird.so
extension=pdo_dblib.so
extension=pdo_oci.so

Windowsの場合

extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

もし、PDOのモジュールがインストールされていない場合でも、以下のコマンドで簡単にインストールすることができます。

pecl install pdo

以下のコマンドを使い、個別のPDOドライバをインストールすることもできます。

pecl install pdo_driver
pecl install pdo_pgsql

MDB2

 インストール

本体

pear install pear/MDB2

ドライバ

pear/MDB2_Driver_sqlite

など。
sqlite.so がインストールされていないとドライバをインストール出来ない。

MDB

本体

pear install pear/XML_Parser
pear install pear/MDB

使ったことがないのでこれ以上は不明


DB

本体

pear install pear/DB

ドライバ

php-mysqlとかphp-pgsqlとか sqlite が必要だともう。

使っていないので詳細不明




[カテゴリ: プログラミング言語 > PHP]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2013年06月19日 22時19分55秒