サンプルは、主な使用方法のみです。トランザクションなどは考慮していません。
また、PHPなどの言語仕様等は一切お答えいたしませんので、専門の紹介サイトで確認して下さい。
インストールされているか確認 # rpm -qa php-mysql コマンド実行結果に何も表示されなければ、パッケージをインストールしてください パッケージ「php-mysql」のインストール # yum -y install php-mysql モジュールを有効にする為、apacheを再起動 【FC1 から Fedora15 / CentOS4 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/httpd restart 【Fedora16以降 の場合】 # systemctl restart httpd.service |
データベース接続の構文 $GLOBALS["dbh"] = mysql_connect($GLOBALS["hostname"],$GLOBALS["dbusername"], $GLOBALS["dbpassword"]); mysql_select_db($GLOBALS["dbname"]); $GLOBALS["hostname"]:ホスト名 $GLOBALS["dbname"]:データベース名 $GLOBALS["dbusername"]:接続ユーザ名(Linuxアカウントでない事に注意) $GLOBALS["dbpassword"]:接続ユーザのパスワード $GLOBALS["dbh"]:正常接続した時のデータベースハンドル |
実行コマンドの構文 $GLOBALS["dbexe"] = mysql_query($sql, $GLOBALS["dbh"]) mysql_free_result($GLOBALS["dbexe"]); $sql:SQL文 $GLOBALS["dbexe"]:実行コマンドのハンドル |
データベース切断の構文 mysql_close($GLOBALS["dbh"]); $GLOBALS["dbh"]:データベース接続時のデータベースハンドル |
サンプルスクリプトプログラムの作成 # vi /var/www/html/OperatedMySQL.php <?php // EUC表示 header("Content-Type: text/html; charset=euc-jp"); //----------------------------- // 設定項目 //----------------------------- $hostname = "localhost"; // ホスト名 $dbname = "meibo"; // データベース名 $dbusername = "linux"; // データベース接続ユーザー名 $dbpassword = "himitsu"; // 接続ユーザパスワード $tbname = "user"; // テーブル名 $script = "OperatedMySQL.php"; // スクリプト名 $dbh = NULL; $dbexe = NULL; $mode = NULL; $process = NULL; $tb_addname = NULL; $opt_del = NULL; $tb_newname = NULL; $opt_upd = NULL; //------------------------------ // メイン処理 //------------------------------ decode(); switch($mode){ case 'view': view(); break; case 'disp_insert': disp_insert(); break; case 'disp_delete': disp_delete(); break; case 'disp_update': disp_update(); break; case 'execute': execute(); break; default: view(); break; } //------------------------------ // 表示処理 //------------------------------ function view () { task_before(); // 前処理 print <<<EOM <TABLE border="1" cellspacing="1"> <TBODY> <TR bgcolor="#0080ff"> <TH>Num</TH> <TH>Name</TH> </TR> EOM; while($data = mysql_fetch_object($GLOBALS["dbexe"])) { print " <TR>\n"; print " <TD>$data->Num</TD>\n"; print " <TD>$data->Name</TD>\n"; print " </TR>\n"; } print <<<EOM </TBODY> </TABLE> EOM; task_after(); // 後処理 } //------------------------------ // 追加モード表示 //------------------------------ function disp_insert() { task_before(); // 前処理 $script = $GLOBALS["script"]; print <<<EOM <FORM action="$script"> <INPUT type="hidden" name="mode" value="execute"> <INPUT type="hidden" name="process" value="insert"> <TABLE border="1" cellspacing="1"> <TBODY> <TR bgcolor="#0080ff"> <TH>Num</TH> <TH>Name</TH> </TR> EOM; while($data = mysql_fetch_object($GLOBALS["dbexe"])){ print " <TR>\n"; print " <TD>$data->Num</TD>\n"; print " <TD>$data->Name</TD>\n"; print " </TR>\n"; } print <<<EOM <TR> <TD>Add Value</TD> <TD><INPUT size="32" type="text" maxlength="32" name="tb_addname"></TD> </TR> <TR> <TD colspan="2" align="center"><INPUT type="submit" name="btn_submit" value="追加"></TD> </TR> </TBODY> </TABLE> </FORM> EOM; task_after(); // 後処理 exit ; } //------------------------------ // 削除モード表示 //------------------------------ function disp_delete() { task_before(); // 前処理 $script = $GLOBALS["script"]; print <<<EOM <FORM action="$script"> <INPUT type="hidden" name="mode" value="execute"> <INPUT type="hidden" name="process" value="delete"> <TABLE border="1" cellspacing="1"> <TBODY> <TR bgcolor="#0080ff"> <TH>Num</TH> <TH>Name</TH> <TH>select</TH> </TR> EOM; while($data = mysql_fetch_object($GLOBALS["dbexe"])){ print " <TR>\n"; print " <TD>$data->Num</TD>\n"; print " <TD>$data->Name</TD>\n"; print " <TD align=\"center\"><INPUT type=\"radio\" name=\"opt_del\" value=\"$data->Num\"></TD>\n"; print " </TR>\n"; } print <<<EOM <TR> <TD colspan="3" align="center"><INPUT type="submit" name="btn_submit" value="実行"></TD> </TR> </TBODY> </TABLE> EOM; task_after(); // 後処理 exit ; } //------------------------------ // 更新モード表示 //------------------------------ function disp_update() { task_before(); // 前処理 $script = $GLOBALS["script"]; print <<<EOM <FORM action="$script"> <INPUT type="hidden" name="mode" value="execute"> <INPUT type="hidden" name="process" value="update"> <TABLE border="1" cellspacing="1"> <TBODY> <TR bgcolor="#0080ff"> <TH>Num</TH> <TH>Name</TH> <TH>select</TH> </TR> EOM; while($data = mysql_fetch_object($GLOBALS["dbexe"])){ print " <TR>\n"; print " <TD>$data->Num</TD>\n"; print " <TD>$data->Name</TD>\n"; print " <TD align=\"center\"><INPUT type=\"radio\" name=\"opt_upd\" value=\"$data->Num\"></TD>\n"; print " </TR>\n"; } print <<<EOM <TR> <TD>New Value</TD> <TD colspan="2"><INPUT size="32" type="text" maxlength="32" name="tb_newname"></TD> </TR> <TR> <TD colspan="3" align="center"><INPUT type="submit" name="btn_submit" value="実行"></TD> </TR> </TBODY> </TABLE> EOM; task_after(); // 後処理 exit ; } //------------------------------ // レコード処理 //------------------------------ function execute() { //debug(); // デバッグ表示 $process = $GLOBALS["process"]; $tb_addname = $GLOBALS["tb_addname"]; $opt_del = $GLOBALS["opt_del"]; $tb_newname = $GLOBALS["tb_newname"]; $opt_upd = $GLOBALS["opt_upd"]; switch($process){ case 'insert': $sql = "insert into meibo.user values(NULL,\"$tb_addname\");"; break; case 'delete': $sql = "delete from meibo.user where Num=$opt_del;"; break; case 'update': $sql = "update meibo.user set Name=\"$tb_newname\" where Num=$opt_upd;"; break; default: error("処理モードが不正です。: $process"); break; } DB_Connect(); // Open Database DB_Execute($sql); // Execute Command mysql_free_result($GLOBALS["dbexe"]); // コマンド実行終了 DB_DisConnect(); // Close Databse view(); // 表示処理 } //------------------------------ // 前処理 //------------------------------ function task_before() { Out_Header(); // HTML ヘッダー表示 DB_Connect(); // Open Database $sql = "select Num,Name from user;"; DB_Execute($sql); // Execute Command } //------------------------------ // 後処理 //------------------------------ function task_after() { mysql_free_result($GLOBALS["dbexe"]); // コマンド実行終了 DB_DisConnect(); // Close Databse Out_Footer(); // HTML フッター表示 } //------------------------------ // Decode //------------------------------ function decode() { foreach($_GET as $key => $value) { $in[$key] = $value; } $GLOBALS["mode"] = $in['mode']; $GLOBALS["process"] = $in['process']; $GLOBALS["tb_addname"] = $in['tb_addname']; $GLOBALS["opt_del"] = $in['opt_del']; $GLOBALS["tb_newname"] = $in['tb_newname']; $GLOBALS["opt_upd"] = $in['opt_upd']; } //------------------------------ // Connect Database //------------------------------ function DB_Connect() { // データベースアクセスの開始 $GLOBALS["dbh"] = mysql_connect($GLOBALS["hostname"], $GLOBALS["dbusername"], $GLOBALS["dbpassword"]) or die("データベースにアクセス出来ません。"); // データベース選択 mysql_select_db($GLOBALS["dbname"]); } //------------------------------ // Execute Command //------------------------------ function DB_Execute($sql) { // コマンドの実行 $GLOBALS["dbexe"] = mysql_query($sql, $GLOBALS["dbh"]) or die("データベース処理コマンドを実行出来ませんでした。"); } //------------------------------ // DisConnect Database //------------------------------ function DB_DisConnect() { // データベースアクセスの終了 mysql_close($GLOBALS["dbh"]); } //------------------------------ // HTML Header //------------------------------ function Out_Header() { $script=$GLOBALS["script"]; print <<< EOM <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <TITLE>はじめての自宅サーバ構築 - データベース操作 〜 PHP編 〜 -</TITLE> </HEAD> <BODY> <CENTER> <a href="$script?mode=view">[表示モード]</a> <a href="$script?mode=disp_insert">[追加モード]</a> <a href="$script?mode=disp_delete">[削除モード]</a> <a href="$script?mode=disp_update">[更新モード]</a> <BR><BR> EOM; } //------------------------------ // HTML Footer //------------------------------ function Out_Footer() { print <<<EOM </CENTER> </BODY> </HTML> EOM; } //------------------------------ // Out Error Message //------------------------------ function error($msg) { Out_Header(); // HTML ヘッダー表示 print "<H2>$msg</H2>\n"; Out_Footer(); // HTML フッター表示 exit ; } //------------------------------ // デバッグ表示 //------------------------------ function debug() { Out_Header(); // HTML ヘッダー表示 $mode = $GLOBALS["mode"]; $process = $GLOBALS["process"]; $tb_addname = $GLOBALS["tb_addname"]; $opt_del = $GLOBALS["opt_del"]; $tb_newname = $GLOBALS["tb_newname"]; $opt_upd = $GLOBALS["opt_upd"]; print <<<EOM <TABLE border="1" cellspacing="1"> <TBODY> <TR bgcolor="#0080ff"> <TH>Property</TH> <TH>Value</TH> </TR> <TR> <TD>mode</TD> <TD>$mode</TD> </TR> <TR> <TD>process</TD> <TD>$process</TD> </TR> <TR> <TD>tb_addname</TD> <TD>$tb_addname</TD> </TR> <TR> <TD>opt_del</TD> <TD>$opt_del</TD> </TR> <TR> <TD>opt_upd</TD> <TD>$opt_upd</TD> </TR> <TR> <TD>tb_newname</TD> <TD>$tb_newname</TD> </TR> </TBODY> </TABLE> EOM; Out_Footer(); // HTML フッター表示 exit ; } ?> |
作成したスクリプトの所有者変更
所有者の変更 # chown apache:apache /var/www/html/OperatedMySQL.php |
ブラウザより『http://サーバのアドレス/OperatedMySQL.php』でアクセスする。
下記の様な画面が表示されるので、「追加・削除・更新」等を行ってみて下さい。