最近寒いですね
そんなときはヒトカラしてカラオケルームに引きこもります。もしくは家に引きこもってコーディングします。
というコトで、PHPからSQLite3 を試してみました。
(SQLiteについてはsqlite3の基本操作まとめ [PCメモ] | てりぶろさんのブログが詳しいです(手抜き))
PHPのバージョンはPHP 5.3.6-13です。
で、インストールにちょっと詰りどころがあったのでメモとして残します。
このエントリの目次
1.パッケージ類のインストール2.適当なディレクトリにDBを作成してみる
3.適当にコード書いてDBに接続を試みる
4.エラーの解決を試みる(これでいいのかは不明)
5.適当なテーブルを作成しデータ突っ込む
6.PHPからSELECT文を実行してみる
7.最後に
1.パッケージ類のインストール
下記のコマンドで必要なパッケージをインストールします。sudo apt-get install sqlite3 sudo apt-get install php5-sqlite
2.適当なディレクトリにDBを作成してみる
コマンドラインで下記を入力します。sqlite3 testdb
すると、「testdb」という名前のDBができ、かつSQLiteとの対話モードに入ります。
.quitと入力してとりあえず脱出。
sqlite> .quit
3.適当にコード書いてDBに接続を試みる
下記のようなPHPを書いてindex.phpという名前で保存します。<?php try { //下記はPDO('sqlite:<作成したSQLiteのDBのファイルパス>');です $db = new PDO('sqlite:testdb'); } catch (Exception $e) { error_log(print_r($e, true)); }
コマンドラインから実行してみます。
$ php index.php PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/sqlite.so' - /usr/lib/php5/20090626+lfs/sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0
エラー出た!
4.エラーの解決を試みる(これでいいのかは不明)
ヤフったら、Launchpadで同様の問題が書かれているページを発見。読み進めていると、15番目のコメントに書かれてる手順で解決する様子。
同様の手順を実施してみる。
$ cd /etc/php5/conf.d/ $ sudo mv sqlite.ini sqlite.NOTini
で、もう一度コマンドラインから実行してみると、エラーが出なくなった!
$ php index.php
やったね!
ちなみに、10番目のコメントでは別の解決策が示されています。
ですが、僕が実施した15番目のコメントの方法を示した人が、14番目のコメントにて、
「それはまた別の話だよ (
Your workaround is regarding a different issue.)」
と言っているので、この人を信じました(楽な方法だし)。
5.適当なテーブルを作成しデータ突っ込む
という訳で、まずはコマンドラインでテーブルを作成します。//先ほど作成したtestdbを使う $ sqlite3 testdb //対話モードになったので、テーブルを作成する。 sqlite> create table testtable (id integer primary key); //適当なデータを突っ込む sqlite> insert into testtable values(1000); //対話モードから脱出 sqlite> .quit
6.PHPからSELECT文を実行してみる
で、下記のようなPHPコードを書きます。<?php try { $db = new PDO('sqlite:testdb'); $sql = $db->prepare('select * from testtable'); if (! $sql->execute()) { echo 'failed 1'; } echo print_r($sql->fetchALl(), true); } catch (Exception $e) { echo (print_r($e, true)); }
で、実行。
$ php index.php Array ( [0] => Array ( [id] => 1000 [0] => 1000 ) )
問題なく値が取れています!
7.最後に
英語力をもっとつけなければいけないなと思いました。最初にエラーに遭遇したとき、日本語のブログを見ていました。
が、話題が本件とずれていたり解決していなかったりして、調べる→実行する→違うエラー出る→調べる→実行する→(ryを繰り返し、どんどんおかしな方向に進んでいってました。
ですが、やる気出して英語記事を読んだらすんなり解決しました。
実はLaunchpadを見ると解決するコトが多いのでは?なんて思いました。
(見たのは今回初めてなんですが)
あと、そろそろSyntaxHighlighter入れようかな…。
それでは。
0 件のコメント:
コメントを投稿