「insert/update/delete処理」の編集履歴(バックアップ)一覧に戻る

insert/update/delete処理 - (2008/11/01 (土) 19:53:16) の編集履歴(バックアップ)


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関数
 
nl2br関数
 

 

mysql用の関数

mysql_connect関数
機能と返り値 mysqlに接続。接続に成功すると、mysqlから接続IDが返されます。失敗した場合はfalse
引数 接続するためには、[mysqlサーバ名][ログインユーザ名][ユーザのパスワード]の順番で指定

$con = mysql_connect(サーバ名, ユーザ名, パスワード);

 

mysql_select_db関数
機能と返り値 複数あるデータベースから、処理する1つのデータベースを選択
引数 第一引数に選択するデータベース名。第二引数に、mysql_connectで返されたmysql接続ID(省略可能)
$selectDB = mysql_select_db(データベース名, 接続情報);

 

mysql_query関数
機能と返り値 sql文を発行。select文では、取得された結果セットのIDが返される。insert / update / delete 文では、成功時は true、失敗時は false
引数 第一引数にsql文の文字列を指定。第二引数に、mysql_connectで返されたmysql接続ID(省略可能)
mysql_query('set names UTF-8');   //読み込み・書き込み用文字コード
$rst = mysql_query(sql文);

 

mysql_num_rows関数
機能と返り値 mysql_query関数で発行したselect文より、何レコードのデータがあるかを返す
引数 mysql_query関数で返された結果セットIDを指定
$rst = mysql_query(sql文);
$selectCnt = mysql_num_rows($rst);
echo $selectCnt;

 

mysql_fetch_array関数
機能と返り値 mysql_query関数を使用してselect文を発行した返り値の結果セットから、1レコード文を取り出します。返り値を変数に代入することにより、取り出されたデータは自動的に連想配列または数値インデックスの配列として格納される。$変数名[フィールド名]という構文で連想配列としてデータを取得できる
引数

第一引数に、mysql_query関数で返された結果セットID。第二引数に、取得された1レコード文のデータをどのように変数に格納するか指定する。
省略した場合には、MYSQL_BOTHが使われる
MYSQL_BOTH    //連想配列と数値インデックス配列の両方で格納
MYSQL_ASSOC   //連想配列として格納
MYSQL_NUM     //数値インデックス配列として格納

$rst = mysql_query(sql文);
while ($col = mysql_fetch_array($rst)) {
      echo $col['id'];
      echo $col['name'];
      echo $col['mail']
}

 

mysql_free_result関数
機能と返り値 mysql_query関数で取得した結果セットを破棄して、メモリを解放する。成功時は true、失敗時は false
引数 mysql_query関数で返された結果セットIDを指定
$rst = mysql_query(sql文);
$rst = mysql_free_result($tst);

 

mysql_close関数
機能と返り値 mysqlとの接続解除。成功時は true、失敗時は false
引数 mysql_connect関数で返された接続IDを指定
$con = mysql_connect(サーバ名, ユーザ名, パスワード);
mysql_close($con);

 

 

 

 

 

 



 

 

記事メニュー
目安箱バナー