2012-09-27 2 views
0

나는 잘 작동하는 PHP 파일이 있습니다. 그 PHP는 로컬 폴더에서 재귀 검색을하고, 그 파일의 최종 수정 날짜를 계산합니다. 내 질문 : 매번 그 PHP 파일을 열 때마다 그 날짜가 SQL 테이블에 저장되기를 원합니다. -i ID = 1 인 2 개의 열 (ID, 날짜)이있는 테이블을 만든 다음 날짜 필드로 이동하여 업데이트합니다.PHP에서 SQL 테이블로 날짜를 저장하는 방법은 무엇입니까?

하지만 어떻게 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','[email protected]','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"; 
} 

?> 

답변

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';"; 
+0

하나의 변수에 형식 함수를 추가하고 다른 변수에 직접 (문자열에) 추가했습니다. – Amelia

+0

나는이 질문에 '1'이 필요하다고 생각했다. 아무데도 $ id 변수가 표시되지 않습니다. – rizalp1

+0

$ tbl_name. hehe. – Amelia

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

또는 당신이 연결을 사용할 수 있습니다. 이 같은

$sql = "UPDATE " . $tbl_name . " SET date='" . $date . "' WHERE id='1';"; 
+0

가 작동하지 않는 것, 내가 당신과 함께 그 라인을 replacent했지만 아무것도 테이블에 happenes 없습니다. 그것은 succefull은 업데이 트하지만 0 값을 가지고, 미안해, 난 knwoledge 많은 것을 당신이 그게 무슨 뜻이야. 내가 볼 수있는 것은 getHighestFileTimestamp 함수가 있고 그 라인이 php 파일의 정확한 날짜를 제공한다는 것이다. echo strftime ('% d % b % Y, % H : % M : % S', getHighestFileTimestamp ('../')); 그 날짜를 SQL에 저장하려고합니다. – nemmy

+0

$ date를 원하는 날짜로 설정하십시오. 이 경우,'$ date = strftime ('% d % b % Y, % H : % M : % S', getHighestFileTimestamp ('../')); ' – Amelia

+0

나는 당신을 사랑한다 !!! 그게 ... !!! 하지만 난 chiness stradge 문자와 날짜를 가지고 ... 나는 어떤 인코딩을해야합니까 ??? hummm – nemmy

관련 문제