0

我有一个可以正常工作的 php 文件。该 php 在本地文件夹中进行递归搜索,并计算这些文件的最后修改日期。我的问题:每次打开该 php 文件时,我都希望将该日期存储在 SQL 表中。-i 创建了一个包含 2 列(ID、日期)的表,其中 ID=1,然后去更新日期字段。

但是我如何调用 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-- 与 Hiroto 的回答合并

您可以使用这些其他样式将字符串常量与变量连接起来

$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 回答