2016-04-12 3 views
0

私が怒鳴る絵のようなデータベースがあります:私はautomtically PHPでfilemtime()機能を使用してuploaddate列内の自分のコンピュータ上のファイルから最終更新日時に基づいて、日付と時刻を挿入したいPHPでfilemtime関数を使用するには?

database

を。

私はこのコードを使用しようとしました:

$namefile= $_FILES['filename']['name']; //from file i have uploaded 
if (file_exists($namefile)) 
{ 
$uploaddate = date ("Y-m-d H:i:s", filemtime($namefile)); 
} 
echo $uploaddate; 

を、これが私のSQLクエリです:

$import="INSERT into scan (UploadDate, ScanDate, FileName) 
     values('$uploaddate', '$date', '$namefile') 
     ON DUPLICATE KEY UPDATE UploadDate='$uploaddate', ScanDate='$date', 
     FileName='$namefile'"; 

エコー機能が実行されていて、本当の私はまだデータベースに挿入することはできません。

どこに問題があるかわかりますか?手伝ってくれてどうもありがとう。

+1

ディスプレイ:あなたの実際のクエリ(変数が置換された)、実際のDBMSとDBMSからの最後のエラーを取得する関数呼び出しを照会関数呼び出し。あなたの質問は、問題を分析するのに十分詳細ではありません。 – LeleDumbo

+0

おそらく、あなたのdatetimeで '.'を削除すると、 –

+0

はまだ動作しません – Shafira

答えて

0

問題は、ファイルのパスではなく、名前の変更時刻(!)を取得しようとしていることです。 upload_fromディレクトリを作成してフォームプロセッサフ​​ァイルの近くに配置すると、このサンプルが動作します。そこからファイルをアップロードしてください。または別のパスを指定することもできます(パスは絶対パスでなければなりません)。残念なことに、この決定はこれらの特定のケースでのみ機能します。

しかし、ファイルの変更時間を使った操作は、ユーザーが手動で設定することができ、異なる時間設定を持つユーザーからのものである可能性があるため、扱いにくいです。そのローカル私が提供した決定。

PS:アップロードしたファイルの絶対ファイル名にアクセスする方法が見つかりませんでした。

index.phpの内容:

<form method="POST" action="index.php" enctype="multipart/form-data"> 
    <input type="file" name="filename"> 
    <input type="submit"> 
</form> 
<?php 
$upload_from_dir = 'upload_from'; 
if (!empty($_FILES)) { 
    $namefile = $upload_from_dir . DIRECTORY_SEPARATOR . $_FILES['filename']['name']; 
    if (file_exists($namefile)) { 
     $uploaddate = date("Y-m-d H:i:s", filemtime($namefile)); 
     echo $uploaddate; 
    } 
} 
?> 
+0

[アップロードしたファイルを移動する](http://php.net/manual/en/function.move-uploaded-file.php)を先に実行してください。 – apokryfos

+0

@apokryfosアップロードされたファイルの変更時刻が変更され、 'now'と等しくなるので、アップロードされたファイルをチェックするつもりはありません。この場合、無駄です。 – Hutsi

関連する問題