Android端末からcsvを受け取り、内容をSQLに入れるコードを書いています。
ファイル名を変数にした所、うまく動作しなくなりました。
(固定のファイル名ではアップロードできています。)
お知恵を貸していただけないでしょうか。
<p><?phpif (is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "/var/www/html/php/." . $_FILES["upfile"]["name"])) {
chmod("/var/www/html/php/" . $_FILES["upfile"]["name"], 0644);
echo $_FILES["upfile"]["name"] . "をアップロードしました。";
} else {
echo "ファイルをアップロードできません。";
}
} else {
echo "ファイルが選択されていません。";
}
$fileName = $_FILES["upfile"]["name"];
try{
/**
* PDOのコンストラクタに指定する引数を正しく指定。
* また文字セットのutf8は、DSNで指定する。
* (文字セットをDSNで指定するやり方は、PHP5.3.5以前ではできません)
*/
$dbh = new PDO(
'mysql:dbname=GPS;host=example.vs.sakura.ne.jp',
'root',
'',
array(
// 発生したエラーが例外としてスローされるよう指定
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_LOCAL_INFILE => true,
PDO::ATTR_EMULATE_PREPARES => true
)
);
/** * PDOへの接続に失敗した場合、エラーを例外としてスロー(投げる) */ if (!$dbh) { throw new RuntimeException('接続に失敗しました。'); } echo '接続に成功しました。'; $sql = 'LOAD DATA LOCAL INFILE "/var/www/html/php/.$fileName" INTO TABLE test FIELDS TERMINATED BY "," LINES TERMINATED BY "\n";'; // ユーザ入力を伴わないため、PDO::queryメソッドを使用 $dbh->query($sql);
} catch (PDOException $e) {
/**
* PDOで発生した例外の処理
/
echo 'PDO Error: ' . $e->getMessage();
} catch (Exception $e) {
/*
* PDO以外で発生した例外の処理
*/
echo 'Error: ' . $e->getMessage();
}
?></p>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/14 03:46
2015/10/14 05:50
2015/10/14 06:50