📝
CentOS, yum でインスコした php で、sqlite3クラス か PDOクラス でアクセスする方法
SQLite 便利
普段は、Oracle 使いな人なんですけど(といっても管理者じゃないのでたいしたことない)、ちょっとしたデータを扱うときにオッサンSEってシーケンシャルファイルとかcsvが大好きで使うけど(disってますw)SQL文書けるSQLite使った方が便利じゃね?って思たしだい。#自分めも
sqlite3クラス か PDOクラス 経由でアクセスしてエラーになるのを確認する
どうやら php 素でインスコした状態では、sqlite3クラス か PDOクラス のモジュールがインストールされてない。
PDO クラスは、マニュアルみると (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) って書いてあるのであれ?って思う。
# php -v
PHP 5.3.3 (cli) (built: Oct 30 2014 20:12:53)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
# ls /etc/php.d
curl.ini fileinfo.ini json.ini phar.ini zip.ini
sqlite3クラス か PDOクラス 経由でアクセスするプログラムを実行してみる。※hoge.db は、なくてok
SQLite3.php
<?php
$db = new SQLite3( 'hoge.db' );
pdo.php
<?php
$db = new PDO( 'sqlite:/tmp/hoge.db' );
を作って。ああ。エラーが出るのね・・って。
$ php SQLite3.php
PHP Fatal error: Class 'SQLite3' not found in SQLite3.php on line 2
$ php pdo.php
PHP Fatal error: Class 'PDO' not found in pdo.php on line 2
sqlite3クラス のモジュールをインスコ
PDOも同時にインスコされる、と思う
$ sudo yum -y install php-sqlite3
$ ls /etc/php.d
sqlite3.ini pdo.ini pdo_sqlite.ini
$ php phpinfo.php | tee | grep SQLite
PDO Driver for SQLite 3.x => enabled
SQLite Library => 3.6.20
SQLite3 support => enabled
SQLite3 module version => 0.7-dev
SQLite Library => 3.6.20
PDOクラス のモジュールがインスコされない場合
何故か php-sqlite3
をインスコしても PDOクラスのアクセスモジュールがインスコされないことがある(なぜ?)
$ sudo yum install php-pdo
Discussion