サンプルは、主な使用方法のみです。トランザクションなどは考慮していません。
また、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』でアクセスする。
下記の様な画面が表示されるので、「追加・削除・更新」等を行ってみて下さい。
