0

問題なく動作するphpファイルがあります。その php は、ローカル フォルダーで再帰的な検索を行い、それらのファイルの最終更新日を計算します。私の質問:そのphpファイルを開くたびに、その日付をSQLテーブルに保存したいと思います。-i ID=1 の 2 つの列 (ID、日付) を持つテーブルを作成し、日付フィールドを更新します。

しかし、FROM phpファイルを呼び出して日付をSQLフィールドに保存するにはどうすればよいですか?

私のphpファイル:

<?php
// LAST FILES UPDATE
function getAllFiles($directory, $recursive = true) {
     $result = array();
$handle =  opendir($directory);
     while ($datei = readdir($handle))
     {
          if (($datei != '.') && ($datei != '..'))
          {
               $file = $directory.$datei;
               if (is_dir($file)) {
                    if ($recursive) {
                         $result = array_merge($result, getAllFiles($file.'/'));
                    }
               } else {
                    $result[] = $file;
               }
          }
     }
     closedir($handle);
     return $result;
}

function getHighestFileTimestamp($directory, $recursive = true) {
     $allFiles = getAllFiles($directory, $recursive);
     $highestKnown = 0;
     foreach ($allFiles as $val) {
          $currentValue = filemtime($val);
          if ($currentValue > $highestKnown) $highestKnown = $currentValue;
     }
     return $highestKnown;
}

echo '<div align="center" style=" padding-top:5px; margin-top:5px; border-top:dotted #777; border-width:1px;">Last Update Date:<br>';

date_default_timezone_set('Europe/Athens');
setlocale(LC_ALL, array('el_GR.UTF-8','el_GR@euro','el_GR','greek'));
echo strftime('%d %b %Y, %H:%M:%S', getHighestFileTimestamp('../'));
echo '</div>';

$host="localhost"; // Host name
$username="..."; // Mysql username
$password="..."; // Mysql password
$db_name="..."; // Database name
$tbl_name="..."; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// update data in mysql database
$sql="UPDATE $tbl_name SET date='HUMMMM HERE HOW TO PULL THE VALUE?' WHERE id='1'";
$result=mysql_query($sql);

// if successfully updated.
if($result){
echo "Successful";
echo "<BR>";
}
else {
echo "ERROR";
}

?>
4

2 に答える 2

1

次のようなことを試してください:

// use the function to calculate highest timestamp
$highestdate = getHighestFileTimestamp("../");

// Insert the highest timestamp into the db
$sql= sprintf("UPDATE $tbl_name SET date='%s' WHERE id='1'",
$highestdate);

--EDIT--ヒロトの答えとマージ

これらの他のスタイルを使用して、文字列定数と変数を連結できます

$sql = "UPDATE {$tbl_name} SET date='{$date}' WHERE id='{$id}';";

または、連結を使用できます。

$sql = "UPDATE " . $tbl_name . " SET date='" . $date . "' WHERE id='1';";
于 2012-09-27T20:26:03.557 に答える
0
$sql = "UPDATE {$tbl_name} SET date='{$date}' WHERE id='{$id}';";

または、連結を使用できます。

$sql = "UPDATE " . $tbl_name . " SET date='" . $date . "' WHERE id='1';";
于 2012-09-27T20:23:16.880 に答える