デジットさんの生活便利サイトトップへ デジットさんのPHPでMySQLに接続(データベース)

トップページ > ホームページ作成 > MySQL接続

PHPを利用して、データベースのMySQLに接続し利用する方法です。MySQLの管理は、レンタルサーバーも、よくインストールされていますが、管理はphpMyAdminしか利用できないことが多いようです。技術書籍では、MySQLをコマンドラインから操作する方法は多く書かれていますが、ここではphpMyAdminを利用した方法を記載します。

MySQLにデータ登録する流れ

ここでは、レンタルサーバーのロリポップを例に説明します。次の流れで、ホームページから入力したデータをMySQLに接続し、登録するファイルを作ります。ここでは、単純に登録するだけの基本的なことのみにとどめ、データのチェックやいたずら防止対策などは、他のページにまわします。

  1. 入力フォームのhtmlを作る
  2. 確認画面用のphpを作る
  3. phpMyAdminで、データを保存するMySQLのテーブルを作る
  4. 登録確認用のphpを作る

入力フォーム

入力フォームの例をつぎのリストに示します。<form>タグで囲まれた入力データ「name」が、「送信」ボタンを押すと「actionファイル」"test_confirm.php"に引き渡されます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>入力フォーム(サンプルリスト)</title>
</head>
<body>
<form method="post" action="test_confirm.php">
<table>
<tr> <th>名前(全角日本字)</th><td><input type="text" name="name" /></td>
</tr>
<tr> <th>名前(半角英字)</th><td><input type="text" name="ename" /></td> </tr>
<tr> <th>E-mail</th><td><input type="text" name="email" /></td> </tr>
<tr> <th>コメント(全角日本字)</th><td><textarea name="comment" cols="40" rows="5"></textarea></td> </tr>
</table>
<input type="submit" value="送信" />
<input type="reset" value="リセット" />
</form>
</body>
</html>

このリストの表示サンプルは、入力フォームで確認できます。

確認画面

入力フォームからデータを受け取った後の確認画面"test_confirm.php"のサンプルリストです。よければデータ登録ボタンを押すと、データを登録するファイルに移行させます。
htmlspecialchars($_POST["name"])は、ユーザが悪意で「&」「"」「'」「<」「>」などの危険な文字を入れた場合、これらの文字をエスケープして表示するために使用しています。また、「input type="hidden"」を利用して、入力されたデータを"test_regist.php"ファイルに引き渡します。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>確認画面</title>
</head>
<body>
<table>
<tr><th>名前(全角日本字)</th><td><?php echo htmlspecialchars($_POST["name"]) ?></td></tr>
<tr><th>名前(半角英字)</th><td><?php echo htmlspecialchars($_POST["ename"]) ?></td></tr>
<tr><th>E-mail</th><td><?php echo htmlspecialchars($_POST["email"]) ?></td></tr>
<tr><th>コメント(全角日本字)</th><td><?php echo htmlspecialchars($_POST["comment"]) ?></td></tr>
</table>
<form method="post" action="test_regist.php">
<input type="hidden" name="name" value="<?php echo htmlspecialchars($_POST["name"]) ?>" />
<input type="hidden" name="ename" value="<?php echo htmlspecialchars($_POST["ename"]) ?>" />
<input type="hidden" name="email" value="<?php echo htmlspecialchars($_POST["email"]) ?>" />
<input type="hidden" name="comment" value="<?php echo htmlspecialchars($_POST["comment"]) ?>" />
<input type="submit" value="登録" />
</form>
</body>
</html>

データが間違っていた時の再入力の方法は、他のページにまわします。

phpMyAdminとテーブル作成について

phpMyAdmin だけで、 MySQL サーバを管理できます。ロリポップでは、phpMyAdmin2.6.2-rc1が使用できます。MySQLバージョンは4.0.24、PHPはver.4.3.11 です。(2007年1月15日現在)コマンドラインでは、MySQLの管理は出来ません。
phpMyAdminの日本語マニュアルは、phpMyAdmin 2.7.0-pl2 - ドキュメントでみられます。
ロリポップでは、1アカウント(1契約)につき、アカウント名と同じデータベース名の1データベースのみが利用出来き、「ユーザ専用ページ」の「WEBツール」→「データーベースの作成」からデータベースを作成します。phpMyAdminもおなじページから入ることが出来ます。
データベースを作成ができたら、テーブルを作成します。フィールドは、テーブルの項目です。とりあえず、必要な項目の数を入力してテーブルを作成します。(あとから、追加や削除ができます。)テーブルの作成方法は、データベース・テーブルの操作が参考になります。
また、次のように、必要と思うフィールド以外にも、「auto_increment」と「主キー」の設定を行った「id」フィールドを作成しておくことをお奨めします。「id」フィールドタイプは、「int」です。 phpMyAdmin登録画面 phpMyAdminフィールド選択 フィールドタイプは色々ありますので、自分で作ったフィールドに合ったタイプを使います。

登録画面

データを受け取りMySQLに登録し、登録を確認するための"test_regist.php"のサンプルリストです。
MySQLに接続し、SQL文を作成し、クリエ(作成したSQL文)を実行し、接続を切断します。ロリポップでは、ログインIDとデータベース名は同一です。
mysql_connect("mysql**.lolipop.jp","LA********","PW*****")では、接続ホスト名、ログインID、パスワードの順に記載します。mysql_select_db ("LA********")は、データベース名を記載します。insert into db****のdb****がテーブル名になります。
「or die(mysql_error())」を記載すると、MySQLのエラーがあった場合処理を終了してエラー内容を表示できます。デバックが終わった場合は、この部分は削除するか「or die("接続エラー"))」等としておくことをお奨めします。

<?php
$con = mysql_connect("mysql**.lolipop.jp","LA********","PW*****") or die(mysql_error());
mysql_select_db ("LA********") or die(mysql_error());//接続
$sql = "insert into db****(name,ename,email,comment) values('".$_POST["name"]."','".$_POST["ename"]."','".$_POST["email"]."','".$_POST["comment"]."')";//SQL文の作成
$res = mysql_query($sql) or die(mysql_error());//クエリの実行
mysql_close($con);//切断
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>登録完了画面(サンプルリスト)</title>
<meta name="keywords" content="入力フォーム,確認画面,サンプル">
</head>
<body>
<p>
ご登録ありがとうございました。
</p>
</body>
</html>

これで、ホームページからのデータ入力→MySQLの登録が出来ました。

ホームページを公開するレンタルサーバーは、 ロリポップ! がお薦め、 PHP5を使うならPHP5から選ぼう。

関連ページ

ホームページ作成

PHP5を使う

アフィリエイトをする

PHPの使い方

デジットさんのホームページ入門に移行中

スポンサード リンク

Amazon.co.jpアソシエイト:
PHP&プログラミング

売れている順 新刊順

:%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%20php :php2_  :10

とことん!ホームページホームページ入門役立つサイトデジットさんのリストラ日記仮福真琴の精神科医はうそだらけ

2005-2010 Copyright © Digit-01 All Rights Reserved.