フリーPHPスクリプト配布サイト。
トップ > PHP入門 > PHPでデータベースへ入力内容を登録
前回紹介したように、mysql_query
関数でレコードを取得するコマンドを指定すれば、登録データを表示することができます。同様に、レコードを登録するコマンドを指定すれば、データを登録することもできます。
まずは、データを入力するためのページをHTMLで作成します。今回は以下のようなHTMLページを作成します。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>アドレス登録</title>
</head>
<body>
<form action="regist.php" method="post">
登録番号:<br />
<input type="text" name="no" size="10" value="" /><br />
氏名:<br />
<input type="text" name="name" size="30" value="" /><br />
電話番号:<br />
<input type="text" name="tel" size="30" value=""><br />
<br />
<input type="submit" value="登録する" />
</form>
</body>
</html>
no
、name
、tel
の名前でそれぞれ登録番号、氏名、電話番号を送信します。データの送信先は regist.php
としています。(regist.php
は次で作成します。)
データを実際に登録する処理を作成します。登録フォームから送信されたデータを受け取り、SQLを使用してデータベーに記録します。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>アドレス登録</title>
</head>
<body>
<?php
$con = mysql_connect('127.0.0.1', 'root', '1234');
if (!$con) {
exit('データベースに接続できませんでした。');
}
$result = mysql_select_db('phpdb', $con);
if (!$result) {
exit('データベースを選択できませんでした。');
}
$result = mysql_query('SET NAMES utf8', $con);
if (!$result) {
exit('文字コードを指定できませんでした。');
}
$no = $_REQUEST['no'];
$name = $_REQUEST['name'];
$tel = $_REQUEST['tel'];
$result = mysql_query("INSERT INTO address(no, name, tel) VALUES('$no', '$name', '$tel')", $con);
if (!$result) {
exit('データを登録できませんでした。');
}
$con = mysql_close($con);
if (!$con) {
exit('データベースとの接続を閉じられませんでした。');
}
?>
<p>登録が完了しました。<br /><a href="index.html">戻る</a></p>
</body>
</html>
フォームからのデータは以下の部分で受け取っています。
$no = $_REQUEST['no'];
$name = $_REQUEST['name'];
$tel = $_REQUEST['tel'];
'
や "
や \
などが自動的にエスケープされる設定の場合はこれで大丈夫ですが、エスケープされない設定の場合、必ず以下のように変更しておいてください。
$no = addslashes($_REQUEST['no']);
$name = addslashes($_REQUEST['name']);
$tel = addslashes($_REQUEST['tel']);
この処理を忘れると、登録データに '
が含まれる場合、エラーになってしまいます。addslashes
についてはフォームからの入力を参照してください。
受信した各データは INSERT
文でデータベースに登録しています。実際に登録処理を行っているのは以下の部分です。
$result = mysql_query("INSERT INTO address(no, name, tel) VALUES('$no', '$name', '$tel')", $con);
if (!$result) {
exit('データを登録できませんでした。');
}
フォームから入力された登録番号、氏名、電話番号がそれぞれ登録されます。
このように、フォームから入力された値を受け取ってレコードを登録するコマンドを指定すれば、データを登録することができます。