asklife

IT&Life

Month: 9月 2011 (page 1 of 9)

CSVを選択 hoge.csvにはアップロードしてあるcsvから選択できるようにしたい

CSVを選択 このhogeにはアップロードしてあるcsvから選択できるようにしたい。ここが不明
一度アップロードして、C:\upfile\hoge.csv で指定するしかないのか?その場合、アップするファイルはhoge.csvにリネーム?

という疑問に答えた?のがこれ ↓↓

http://d.hatena.ne.jp/Choo/200……1252635609

MySQLにアップロードするサンプルスクリプト

MySQLにアップロードするサンプルスクリプト

[php]
//アップロードからファイル名などを取り出す
$tmp_name = $_FILES[“userfile”][“tmp_name”];
$size = $_FILES[“userfile”][“size”];
$file_name = $_FILES[‘userfile’][‘name’];
$file_type = $_FILES[‘userfile’][‘type’];
$fp = fopen($_FILES[“userfile”][“tmp_name”], “rb”);
if(!$fp)
{
print(“アップロードしたファイルを開けませんでした”);
exit;
}
$file_data = addslashes(fread($fp,
filesize($_FILES[“userfile”][“tmp_name”])));
fclose($fp);
//ここまで
//MySQLに接続
$host = ‘host’;
$user = ‘user’;
$password = ‘password’;
$database = ‘database’;
$db = new mysqli($host, $user, $password, $database);
//文字化け対策
$stmt = $db->prepare(“SET NAMES utf8”);
$stmt->execute();
//ここまで

//MySQLにinsert
$sql = “insert into FILE (file_name,file_type,file_data,up_date) values
(‘$file_name’,’$file_type’,?,’$up_date’)”;
$stmt = mysqli_prepare($db,$sql);
$null = NULL;
//blob型のデータをバインドする。
$stmt->bind_param(“b”, $null);
//ファイルからデータを8192バイトずつ取り出し、send_long_dataで送る
$fp = fopen($_FILES[“userfile”][“tmp_name”], “rb”);
while (!feof($fp)) {
$stmt->send_long_data(0, fread($fp, 8192));
}
fclose($fp);
$rs = $stmt->execute();
//ここまで

[php]

Load Data Infile サンプルスクリプト

Load Data Infile サンプルスクリプト

[php]
$tmp_file_path = $_FILES[‘upfile’][‘tmp_name’];
if ($tmp_file_path == “”) {
die(“ファイルが指定されていません”);
}
// DB Connect
gfDBConn($conn);
$handle = fopen($tmp_file_path, “r”);
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
$pieces = explode(“,”, $buffer);
if ($pieces[1] != “” ) {
// DB Insert
fInsStockMst($pieces[1] ,$pieces[3] ,$pieces[2]);
}
}
fclose($handle);
}
// MySQL 切断
mysql_close($conn);
print(“完了
もどる“);
// DB接続
function gfDBConn(&$conn) {
global $pcDBname,$pcMySqlUser,$pcMySqlPass,$pcDatenbankname;
$conn = mysql_connect($pcDBname,$pcMySqlUser,$pcMySqlPass);
mysql_select_db($pcDatenbankname,$conn);
}
// 登録処理
function fInsStockMst($stock_cd ,$stock_nm ,$market_cd) {
global $conn;
$sSQL = “”;
$sSQL .= “insert into stock_mst (“;
$sSQL .= ” stock_cd,”;
$sSQL .= ” stock_nm,”;
$sSQL .= ” market_cd,”;
$sSQL .= ” upddate,”;
$sSQL .= ” insdate”;
$sSQL .= “) values (“;
$sSQL .= ” ‘”.gfFixUpStr($stock_cd).”‘,”;
$sSQL .= ” ‘”.gfFixUpStr($stock_nm).”‘,”;
$sSQL .= ” ‘”.gfFixUpStr($market_cd).”‘,”;
$sSQL .= “now(),”;
$sSQL .= “now()”;
$sSQL .= “) “;
$sSQL .= “ON DUPLICATE KEY UPDATE “;
$sSQL .= ” market_cd4 = if(market_cd3 <>
”,'”.gfFixUpStr($market_cd).”‘,”), “;
$sSQL .= ” market_cd3 = if(market_cd2 <>
”,'”.gfFixUpStr($market_cd).”‘,”), “;
$sSQL .= ” market_cd2 = if(market_cd <> ”,'”.gfFixUpStr($market_cd).”‘,”)
“;
$res = gfGetDBRs($sSQL, $conn);
}
// 入力を表示文字列からDB格納型へ
function gfFixUpStr($getstr,$rnflg=0,$maxlen=0) {
// サニタイズやらなにやら
$str = $getstr;
return $str;
}
[php]

参照
http://q.hatena.ne.jp/1144055939

LOAD DATA INFILEでMySQLはCSVをインポートできる

LOAD DATA INFILEでMySQLはCSVをインポートできる


LOAD DATA INFILE [filename] INTO TABLE [tablename] FIELDS TERMINATED BY “,”;

[filename]はCSVファイル名、[tablename]はインポートするテーブル名を適宜入力してください。

http://detail.chiebukuro.yahoo……1315020418

PHP MySQLリファレンス

PHP MySQLリファレンス

MySQL 関数
mysql_affected_rows ― 一番最近の操作で変更された行の数を得る
mysql_client_encoding ― 文字セット名を返す
mysql_close ― MySQL 接続を閉じる
mysql_connect ― MySQL サーバへの接続をオープンする
mysql_create_db ― MySQL データベースを作成する
mysql_data_seek ― 内部的な結果ポインタを移動する
mysql_db_name ― mysql_list_dbs のコール結果からデータベース名を取得する
mysql_db_query ― データベースを選択し、そこでクエリーを実行する
mysql_drop_db ― MySQLデータベースを破棄(削除)する
mysql_errno ― 直近の MySQL 処理からエラーメッセージのエラー番号を返す
mysql_error ― 直近に実行された MySQL 操作のエラーメッセージを返す
mysql_escape_string ― mysql_query で使用するために文字列をエスケープする
mysql_fetch_array ― 連想配列、添字配列、またはその両方として結果の行を取得する
mysql_fetch_assoc ― 連想配列として結果の行を取得する
mysql_fetch_field ― 結果からカラム情報を取得し、オブジェクトとして返す
mysql_fetch_lengths ― 結果における各出力の長さを得る
mysql_fetch_object ― 結果の行をオブジェクトとして取得する
mysql_fetch_row ― 結果を添字配列として取得する
mysql_field_flags ― 結果において指定したフィールドのフラグを取得する
mysql_field_len ― 指定したフィールドの長さを返す
mysql_field_name ― 結果において指定したフィールド名を取得する
mysql_field_seek ― 結果ポインタを指定したフィールドオフセットにセットする
mysql_field_table ― 指定したフィールドが含まれるテーブルの名前を取得する
mysql_field_type ― 結果において指定したフィールドの型を取得する
mysql_free_result ― 結果保持用メモリを開放する
mysql_get_client_info ― MySQL クライアント情報を取得する
mysql_get_host_info ― MySQL ホスト情報を取得する
mysql_get_proto_info ― MySQL プロトコル情報を取得する
mysql_get_server_info ― MySQL サーバ情報を取得する
mysql_info ― 直近のクエリについての情報を得る
mysql_insert_id ― 直近のクエリで生成された ID を得る
mysql_list_dbs ― MySQL サーバ上で利用可能なデータベースのリストを得る
mysql_list_fields ― MySQL テーブルのフィールドのリストを得る
mysql_list_processes ― MySQL プロセスのリストを得る
mysql_list_tables ― MySQL データベース上のテーブルのリストを得る
mysql_num_fields ― 結果におけるフィールドの数を得る
mysql_num_rows ― 結果における行の数を得る
mysql_pconnect ― MySQL サーバへの持続的な接続をオープンする
mysql_ping ― サーバとの接続状況を調べ、接続されていない場合は再接続する
mysql_query ― MySQL クエリを送信する
mysql_real_escape_string ― SQL 文中で用いる文字列の特殊文字をエスケープする
mysql_result ― 結果データを得る
mysql_select_db ― MySQL データベースを選択する
mysql_set_charset ― クライアントの文字セットを設定する
mysql_stat ― 現在のシステムの状態を取得する
mysql_tablename ― フィールドのテーブル名を得る
mysql_thread_id ― カレントのスレッド ID を返す
mysql_unbuffered_query ― MySQL に SQL クエリを送信するが、結果に対してのフェッチやバッファリングは行わない

以下より参照
http://php.net/manual/ja/book.mysql.php

Older posts

© 2017 asklife

Theme by Anders NorenUp ↑