戻る

データベースを開く

mysql_connect()関数、mysql_select_db()関数、mysql_close()関数

MySQLに接続してデータベースを開くには、次のような手順でPHPスクリプトを実行します。MySQLデータベースに対する処理内容はさまざまですが、これらがスクリプトの大枠となります。

①mysql_connect()関数を使って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_select_db()関数で選択する

MySQLでは複数のデータベースを省略できます。例えば「顧客管理」のデータベース、「給与情報」のデータベースなど、お互いの関連性のないデータを1つのMySQLで管理できます。このため、これからその中のどのデータベースを使うかを指定する必要があります。

③mysql_connect()関数を使ってMySQLに接続する

PHPやMySQLの文字コード設定によっては不要な処理ですが、MySQLに全角文字を含むSQLを発行したり、MySQLから全角文字を読み込んだりする際の文字化けを防ぐため、「SET NAMES utf8」というSQL文を発行します(Shift_JIS形式が主体の環境では「SET NAMES sjis」とします)。

④PHP関数でデータベースに対する処理を実行する

MySQL操作用のPHP関数を利用して、データを表示する、条件に応じてデータを並べ替える、データに変更を加える、不要なデータを削除する…など、さまざまな処理を行います。

⑤mysql_close()関数でMySQLとの接続を解除する

すべての処理が完了したら、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();
}
?>

inserted by FC2 system