サイトマップ   お問い合わせ   このサイトについて   ホーム   
WEB制作支援
 HTMLリファレンス
 スタイルシート
 JavaScript
 PHP/データベース
WEBデザイン
 デザインテクニック
 素材集/テンプレート
 ウェブ配色の見本
 ユーザビリティ
WEB運営
 ウェブの開設と運営法
 アクセスアップの技
 アフィリエイト (WEB広告)
 ドメインとサーバー
特集・トピックス
 Web広告で収入を得る
 独自ドメインの利点
 使えるWeb作成ソフト
 Webデザイナーになるには
 SEOでアクセスアップ
 光ファイバーの導入
リンク集
 ウェブ作成リンク
 無料リンク
 オンラインソフトリンク
 ユーザーリンク
 ウェブコラム
 参考文献一覧
 サイトマップ
 このサイトについて
 お問い合わせ
 eWebホーム


Home >> PHP/データベース >> データベースにアップロード

データベースにアップロード



サンプルと機能

ローカルにあるファイルを、データベースのテーブルにアップロードすることができます。

サンプル(実際にアップロードするわけにはいかないため画像で)


ファイルの上限値や上書きの可否を設定することも可能です。


サンプルスクリプト

緑の文字が変更箇所で、赤い文字が対応するPHPです。
<!-- -->内または//以下はコメントです。削除しても影響ありません。
必要な箇所をコピー&貼り付けして編集してください。

呼び出すファイル
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<FORM method="POST" action="upload.php" enctype="multipart/form-data">
<!-- データの最大サイズ -->
<INPUT type="hidden" name="max_file_size" value="1000000">
アップロードするファイルを選択してください。<BR>
<BR>
<INPUT name="fl" type="file" size="50"><BR>
<INPUT type="checkbox" name="frb" value="true" checked>上書きしない<BR><BR>
<INPUT type="submit" value="アップロード">
</FORM>
</BODY>
</HTML>

→ upload.php
<?php header("Content-Type:text/html;charset=SHIFT_JIS"); ?>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<?php
$srv = "localhost"; // サーバー名
$id = "xxxxx"; // ユーザーID
$passwd = "xxxxx"; // パスワード
$dbn = "sample"; // データベース名
$tn = "sample1"; // テーブル名

// キー
$key[0] = "id";
$key[1] = "title";
$key[2] = "comment";

?>
<TABLE border="1">
<TR><TH colspan="3">入力データ</TH><TH>エラーメッセージ</TH></TR>

<?php

$db=mysql_connect($srv,$id,$passwd);
mysql_select_db($dbn,$db);
$file=fopen($_FILES['fl']['tmp_name'],"r");
while($dat=fgetcsv($file,1000,",")){
  $sql="";
if($_POST['frb'] == "true") {
    // キーとデータを増やしたら、ここにも追加します。
    $sql="INSERT INTO ".$tn."(".$key[0].",".$key[1].",".$key[2].")
          VALUES('".$dat[0]."','".$dat[1]."','".$dat[2]."')";
  } else {
    // キーとデータを増やしたら、ここにも追加します。
    $sql="UPDATE ".$tn." SET ".$key[1]."='".$dat[1]."',".$key[2]."=".$dat[2]."
          WHERE ".$key[0]."='".$dat[0]."'";
  }
  // EUCからSHIFT_JISに変換
  for($i=0; $i<count($dat); $i++) {
    $dat[$i] = mb_convert_encoding($dat[$i],"SJIS","EUC-JP");
  }
  mysql_query($sql,$db);

  // キーとデータを増やしたら、ここにも追加します。
  if(mysql_errno() == 0) {
    print("<TR><TD>".$dat[0]."</TD>");
    print("<TD>".$dat[1]."</TD><TD>".$dat[2]."</TD>");
    print("<TD>正常終了</TD></TR>");

  } else {
    print("<TR><TD>".$dat[0]."</TD>");
    print("<TD>".$dat[1]."</TD><TD>".$dat[2]."</TD>");
    print("<TD><FONT color=red>".mysql_error()."</FONT></TD></TR>");

  }
}
fclose($file);
mysql_close($db);
?>
</TABLE>
</BODY>
</HTML>


解説・注意点など

サンプルで用いたアップロードファイルは以下のとおりです。
1,sample1,"これはサンプルデータです"
8,sample2,"本当にサンプルデータです"
9,sample3,"絶対サンプルデータです"
10,sample4,"きっとサンプルデータです"
5,sample5,"ほのかにサンプルデータです"


また、サンプルに用いたSQLは以下のとおりです。

CREATE TABLE sample1 (
  id int(10) NOT NULL,
  title char(20) default NULL,
  comment char(50) default NULL,
  PRIMARY KEY (id)
) TYPE=MyISAM;

INSERT INTO sample1 VALUES ('1','sample1','これはサンプルデータです');
INSERT INTO sample1 VALUES ('2','sample2','本当にサンプルデータです');
INSERT INTO sample1 VALUES ('3','sample3','絶対サンプルデータです');
INSERT INTO sample1 VALUES ('4','sample4','きっとサンプルデータです');
INSERT INTO sample1 VALUES ('5','sample5','ほのかにサンプルデータです');
INSERT INTO sample1 VALUES ('6','sample6','なんとなくサンプルデータです');
INSERT INTO sample1 VALUES ('7','sample7','サンプルデータだったらいいなぁ');


 
 

PHP/データベースに戻る




 eWeb/ HTML/ スタイルシート/ Javaスクリプト/ PHP/ 素材集/ テクニック/ 配色/ ユーザビリティ/ 開設と運営/ アクセスアップ/ アフィリエイト/ ドメイン
Copyright(C) 2004. Aeu, Gundam, eWeb, PHP and Database. All rights reserved. - Home