insert / update/ delete 処理
insert文の例
insert用フォーマット |
<?php
$DBSERVER = 'localhost'; //mysqlサーバ名
$DBUSER = 'root'; //ログインユーザ名
$DBPASSWORD = ''; //パスワード
$DBNAME = 'testDB'; //データベース名
//mysqlに接続
$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
//読み込み時の文字コード設定
mysql_query('set names UTF-8');
//データベース選択
$selectDB = mysql_select_db($DBNAME);
//Sql文を編集
$sql = "INSERT INTO menber
(name, address, tel, mail)
VALUES
('名前', '住所', '電話', 'メール')";
//sql文を発行
$ret = mysql_query($sql);
//インサートが成功したかチェック
if ($ret) {
echo 'レコードの追加に成功';
echo mysql_affected_rows($con) . '件のレコード追加';
echo mysql_insert_id($con) . 'が自動採番されました';
} else {
echo 'レコードの追加に失敗';
} //mysqlとの接続解除
mysql_close($con);
?>
|
◆ここでは、単純なインサート文を使用しましたが、通常はhtml上で入力されたデータを取得して、value句に代入するでしょう。その時に、データ上に不正な文字列が挿入されていたら正しく処理されません。
そこで、入力データに対して変換処理する関数を紹介します。
stripcslashes関数 |
HTML上のテキストボックスなどに【 ' 】【 " 】【 ¥ 】などの文字が入力されていると、それを受け取ったPHPファイル上の変数には【 ¥' 】【
¥" 】【 ¥¥ 】というように、前に【 ¥ 】記号が勝手につけられることをエスケープといい、このエスケープされた文字列を本来の文字列を返す関数 |
htmlspecialchars関数 |
HTML上のタグ記号【 < 】【 > 】という文字を、【 < 】【 >
】といった実体参照に変換する関数。HTMLフォーム上に意図的にタグが入力された場合に、単なる文字列として画面表示させる。 |
nl2br関数 |
複数行入力可能なtextareaで入力された改行コードを、ブラウザ上で表示させるための<br
/>に変換した文字列を返す関数 |
mysql_affected_rows関数 |
機能と返り値 |
insert / update / delete
文で処理されたレコード数を返す。where句のないdelete文では[0]、sqlの処理失敗時には[-1]を返す |
引数 |
mysql_connect関数で返された接続IDを指定 |
echo mysql_affected_rows($con) . '件のレコード追加'; |
mysql_insert_id関数 |
機能と返り値 |
insert文によって、auto_increment属性のフィールドに自動生成された値を返す。フィールドがない場合には[0]を返す |
引数 |
mysql_connect関数で返された接続IDを指定 |
echo mysql_insert_id($con) . 'が自動採番されました'; |
◆auto_incrementとは、自動的にID番号が付加される機能で、mysqlでテーブルを作成しカラム名を作成する場合に、auto_incrementを使用するかを決定する。この機能を使用していない場合には、mysql_insert_id関数は意味がない。
update文の例
update用フォーマット |
<?php
$DBSERVER = 'localhost'; //mysqlサーバ名
$DBUSER = 'root'; //ログインユーザ名
$DBPASSWORD = ''; //パスワード
$DBNAME = 'testDB'; //データベース名
//mysqlに接続
$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
//読み込み時の文字コード設定
mysql_query('set names UTF-8');
//データベース選択
$selectDB = mysql_select_db($DBNAME);
//Sql文を編集
$sql = "UPDATE menber " .
"SET name = '名前名前' " .
"WHERE menberID = 1 ";
//sql文を発行
$ret = mysql_query($sql);
//インサートが成功したかチェック
if ($ret) {
echo 'レコードの更新に成功';
echo mysql_affected_rows($con) . '件のレコードを更新';
} else {
echo 'レコードの追加に失敗';
} //mysqlとの接続解除
mysql_close($con);
?>
|
delete文の例
delete用フォーマット |
<?php
$DBSERVER = 'localhost'; //mysqlサーバ名
$DBUSER = 'root'; //ログインユーザ名
$DBPASSWORD = ''; //パスワード
$DBNAME = 'testDB'; //データベース名
//mysqlに接続
$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
//読み込み時の文字コード設定
mysql_query('set names UTF-8');
//データベース選択
$selectDB = mysql_select_db($DBNAME);
//Sql文を編集
$sql = "DELETE FROM menber WHERE menberID = 1";
//sql文を発行
$ret = mysql_query($sql);
//インサートが成功したかチェック
if ($ret) {
echo 'レコードの削除に成功';
echo mysql_affected_rows($con) . '件のレコードを削除';
} else {
echo 'レコードの削除に失敗';
} //mysqlとの接続解除
mysql_close($con);
?>
|