MySQLに接続してデータベースを開くには、次のような手順でPHPスクリプトを実行します。MySQLデータベースに対する処理内容はさまざまですが、これらがスクリプトの大枠となります。
mysql_connect()関数の引数には「MySQLサーバ名」「ログインユーザ名」「ログインユーザのパスワード」をその順番で指定します。ローカルのパソコンにセットアップされたMySQLで試行する場合には、MySQLサーバ名は「localhost」とします。
この例ではログインユーザ名として、MySQLの最上位の管理者である「root」を指定しています。細かいユーザ管理、アクセス権限の管理を行う場合は、MySQLに登録されている任意のユーザ名とそのパスワードを指定します。php.iniファイルの「MySQL」セクションにある「mysql.default_host」「mysql.default_user」「mysql.default_password」の項目を設定すると、デフォルトのサーバー名やログインユーザを設定することもできます。
MySQLへの接続が成功すると「MySQL接続ID」、失敗した場合はFalseが返されます。このMySQL接続IDは、さまざまなMySQL操作用の関数で利用しいます。ただし、接続するMySQLのサービスは1つであることがほとんどなので、その指定は省略できます。
たとえば、この例の「データベースを選択」のところに「mysql_select_db(DBNAME)」とあります。この部分は正確には「mysql_select_db(DBNAME, $con)」と書きます。MySQLへの接続に成功した場合、変数「$con」にはMySQL接続IDが代入されていることに注目してください。
MySQLでは複数のデータベースを省略できます。例えば「顧客管理」のデータベース、「給与情報」のデータベースなど、お互いの関連性のないデータを1つのMySQLで管理できます。このため、これからその中のどのデータベースを使うかを指定する必要があります。
PHPやMySQLの文字コード設定によっては不要な処理ですが、MySQLに全角文字を含むSQLを発行したり、MySQLから全角文字を読み込んだりする際の文字化けを防ぐため、「SET NAMES utf8」というSQL文を発行します(Shift_JIS形式が主体の環境では「SET NAMES sjis」とします)。
MySQL操作用のPHP関数を利用して、データを表示する、条件に応じてデータを並べ替える、データに変更を加える、不要なデータを削除する…など、さまざまな処理を行います。
すべての処理が完了したら、mysql_close()関数でMySQLとの接続を解除します。この関数の引数にはMySQL接続IDを指定しますが、省略も可能です。その場合、最後にオープンされた接続が解除されます。
<?php header("Content-type: text/html; charset=utf-8"); define("DBSERVER","localhost"); define("DBUSER","root"); define("DBPASSWORD","root"); define("DBNAME","sampledb"); if($con = @mysql_connect(DBSERVER, DBUSER, DBPASSWORD)){ echo "MySQLに接続しました!<br>"; } else{ die("MySQLに接続できませんでした!<br>"); exit(); } if($selectdb = @mysql_select_db(DBNAME)){ echo DBNAME . "データベースを選択しました!<br>"; } else{ echo DBNAME . "データベースを選択できませんでした!<br>"; } if($result =@mysql_query("SET NAMES utf8;")){ echo "文字コードを設定しました!<br>"; } else{ echo "文字コードを設定できませんでした!<br>"; } if($con = @mysql_close()){ echo "MySQLとの接続を解除しました!<br>"; } else{ die("MySQLとの接続を解除できませんでした!<br>"); exit(); } ?>