「PHP」は書かれたとおりに動いてくれる忠実なやつ
いわば家政婦のミタさんなわけだ。



で、「データベース」とは一体なんぞやという話ですが、人間が苦手とする大量のデータを記憶して指示通りに素早く提供する仕事をしてくれるものです。
データベースにはみんなが知りたい情報が大量にあるほど価値があるんじゃなかろうかと、、
そしてそれを素早く提供できた日にゃあーた、そりゃもぅ金銭的価値を生み出すかも知れないよ!


検索エンジンがキーワードにマッチする大量のWEBページを教えてくれる感じ?
精度が高ければ有用な情報源だよね。



じゃあじゃあじゃあ「私」は一体何者よとくるわねこりゃ。
ま、ここでは「PHP」を書き、「データベース」に指示を与えるタンパク質の塊といったところでしょうか。。



そこでこのタンパク質の塊は考えました。
PHPからのデータベース操作をもっと楽にできないものかと、、


幸いにもPHPにはデータベース処理のためのPDOというインターフェイスが用意されていて
これを利用すればOracleやらMySQLやらPostgreSQLやらを区別することなしに書けるらしいよ。


うむ、こりゃPDO使わない手はないな
これを利用すればPHPでのデータベース処理はもらったようなものさ

このブログを書くことになったキッカケは、PCの電源を入れても起動しないことがあっていろいろとモガいたことがあったからだった。

~あれが2009年のこと~

~そして2011年の今、悪夢が再び訪れる。。。~(遠い目)

朝一でPC電源をポチる

いつもの起動(BIOSによる表示)が始まる

しばらく待つ

画面は暗いまま
待てども待てどもそれ以上先へ進めない
ハードディスクのアクセスランプもチカチカしない状態が続く

これって。。
以前の悪夢が蘇る。


ま、たまたまなんかのタイミングが合わなかったんだろうと思い電源を入れなおしてみる。
途中「セーフモード」やら起動方法を選べる画面が出た。
つまり今しがたの起動でWindowsが起動始めましたよというフラグが立ってるわけです。
ここは確認の為にももう1度通常起動でトライしてみまっせ
するとまたしても同じように画面が暗いまま先へ進む気配がない。

こっ、これはばいやーですよ!

ただ、以前の時と違うのは電源が入るということ
BIOSも問題ない
で、Windowsの起動処理へ移ってからのブラックアウトなわけです。

Windows起動を妨げてる原因が確実に存在するです。

昨日PCを起動してどんな作業を行ったのか思い返してみる。。。
目新しいソフト入れたわけでもないし、、、
WindowsUpdateがあったようなメッセージボックスも出た記憶無いし、、
そうそう電源切る直前ぐらいにAVGが再起動を促すメッセージを出してたっけ、、
ちょうど寝る時間だったこともありそのままシャットダウンしたんだった。

うん、多分これが匂うな

再度起動させるべく電源入れなおすとBIOS処理後、Windowsに処理が渡り
やはり以下の画面が出てくる。

セーフモード
セーフモードとネットワーク
セーフモードとコマンドプロンプト
前回正常時の構成(詳細)
通常起動


とりあえず確実に起動できることを確認して少しでも早く安心感を味わいたいので「セーフモード」を選んでみる。

するといろいろと「C:\xxx\yyy\zzz.sys」みたいな羅列が続いて、力強くWindowsは起動したのであった。
その際、AVG関連パスが表示されたところでちと時間食ったのが疑いを更に深くした。

セーフモードで起動できたので今度は「前回正常時の構成」で祈るように起動を試してみる。

するとうまく起動できた!
もう勝利を確信した。

AVGの前回のアップデートを見たら今朝の2:10に行われていた。
このアップデートが私を悩ませた種だろう。
すかさずネット接続を行い、AVGアップデートをかける。
なにやら新しいアップデートがされた模様。
これで通常の起動ができれば安心できる。

んで、何事もなく無事に起動できるようになったことを確認して極上の安心感を味わったのでありました。


PHPはWebだけでなく、コマンドラインから実行させる使い方もあります。
いわゆるCLI(Command Line Interface)というやつです。

このCLIは、PHPが使用しているインターフェイス(サーバAPI、SAPI)の型を表すものです。
CLIの他には、apacheモジュールとして実行されている場合は「apache」や「apache2handler」など、
CGIとして実行されている場合は「cgi」「cgi-fcgi」などのSAPIになるようです。
どのSAPIか知るには、定数PHP_SAPIや関数php_sapi_name()で参照できます。

CLIではコマンドラインからPHPインタプリタへあれやこれやオプションを渡していろんな情報を得ることができます。

代表的なのがPHPバージョン表示を行う「-v」オプションです。
versionの「-v」)

PHPインタプリタへのパスが通っていれば、DOS窓から以下のように打てば表示できます。
C:\Users\Administrator> php -v
'php' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\Users\Administrator>


手元のxampp環境ではパスが通ってないのでフルパス指定する必要があります。

C:\Users\Administrator> /xampp/php/php -v
PHP 5.3.1 (cli) (built: Nov 20 2009 17:26:32)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
    with Xdebug v2.0.6-dev, Copyright (c) 2002-2009, by Derick Rethans

C:\Users\Administrator>


うまくいきました。
さて他にもいろいろあるオプション、一覧で確認したい場合は「-h」オプションが使えます。
helpの「-h」)
C:\Users\Administrator> /xampp/php/php -h


大量のオプションを一覧で見ても困るね。
実際に使うのはそれほど多くないし使えそうなのを抜粋してみます。


●PHPファイルを実行させる「-f」(fileの「-f」)
C:\Users\Administrator> /xampp/php/php -f file


「-f」オプションは省略できるので以下のようにしても同じです。
C:\Users\Administrator> /xampp/php/php file



●PHP情報を表示させる「-i」(informationの「-i」)
C:\Users\Administrator> /xampp/php/php -i


これはPHPの関数phpinfo()を使った時と同様のHTML形式で大量に表示されます。
動体視力が衰えてる場合はリダイレクトで一旦保存するか、パイプラインでmoreのようなページャにつなげるかして見ないと追いきれません。

C:\Users\Administrator> /xampp/php/php -i >/xampp/htdocs/phpinfo.html


特に「Warning」や「Error」表示になっている箇所があれば、対処しましょう。

grepコマンドが使えるLinux環境なら以下のようにすれば抽出できます。

C:\Users\Administrator> /xampp/php/php -i | grep Warn



●PHPファイルの構文チェック「-l」
C:\Users\Administrator> /xampp/php/php -l /xampp/htdocs/index.php
No syntax errors detected in /xampp/htdocs/index.php

C:\Users\Administrator>


「-l」は、lint(構文チェックの意味)のlになります。


●有効なモジュール表示「-m」(moduleの「-m」)
組み込まれていて、なおかつ有効になっているモジュールが表示されます。
C:\Users\Administrator> /xampp/php/php -m
[PHP Modules]
bcmath
bz2
calendar
com_dotnet
Core
ctype
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imap
json
libxml
mbstring
mcrypt
mhash
ming
mysql
mysqli
mysqlnd
odbc
openssl
pcre
pdf
PDO
pdo_mysql
PDO_ODBC
pdo_sqlite
Phar
Reflection
session
SimpleXML
soap
sockets
SPL
SQLite
sqlite3
standard
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib

[Zend Modules]
Xdebug


C:\Users\Administrator>



●PHPコードを渡して実行「-r」(runの「-r」)
環境ごとにシェルの展開方式が違うので多少やり方は違います。

php -r "PHPコード;" for Windows
php -r 'PHPコード;' for Unix

C:\Users\Administrator> /xampp/php/php -r "echo \"Hello world.\n\";"
Hello world.

C:\Users\Administrator>


Windowsで二重引用符でくくったものをオプションに渡すと表示できました。

C:\Users\Administrator> /xampp/php/php -r 'echo "Hello world.\n";'

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE in Command line
code on line 1

C:\Users\Administrator>


Windowsで一重引用符だとエラーになります。


●iniファイルはいずこへ?「--ini」
実行で実際に使用している設定ファイルがどこの何がしかを知っておくことは重要なことです。
これはPHP5.2.3以降で使える方法になります。

C:\Users\Administrator> /xampp/php/php --ini
Configuration File (php.ini) Path:
Loaded Configuration File:         C:\xampp\php\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

C:\Users\Administrator>