LoginSignup
4
3

More than 5 years have passed since last update.

CentOS, yum でインスコした php で、sqlite3クラス か PDOクラス でアクセスする方法

Posted at

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
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3