📝

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

2021/04/05に公開

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
GitHubで編集を提案

Discussion