2016-03-04 32 views
1
<?php 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 
$db_host = 'localhost'; 
$db_user = 'root'; 
$db_pwd = 'root'; 

$database = 'test'; 
$table = 'test'; 

if (!mysql_connect($db_host, $db_user, $db_pwd)) 
    die("Can't connect to database"); 

if (!mysql_select_db($database)) 
    die("Can't select database"); 


    if(isset($_POST['submit'])) 
    { 
     $fname = $_FILES['sel_file']['name']; 
     echo 'upload file name: '.$fname.' '; 
     $chk_ext = explode(".",$fname); 

     if(strtolower(end($chk_ext)) == "txt") 
     { 

      $filename = $_FILES['sel_file']['tmp_name']; 
      $handle = fopen($filename, "r"); 

      while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
      { 
       $sql = "INSERT into graph(note,per,cpu,perc) values('$data[0]','$data[1]','$data[2]','$data[3]')"; 
       mysql_query($sql) or die(mysql_error()); 
      } 

      fclose($handle); 
      echo "Successfully Imported"; 

     } 
     else 
     { 
      echo "Invalid File"; 
     } 
    } 

    ?> 
    <h1>Import txt file</h1> 
    <form action='<?php echo $_SERVER["PHP_SELF"];?>' method='post' enctype="multipart/form-data"> 
     Import File : <input type='file' name='sel_file' size='20'> 
     <input type='submit' name='submit' value='submit'> 
    </form> 

这是我的导入txt文件到MySQL表的代码。导入TXT文件每5秒进入MySQL表

但我想这段代码每5秒自动将txt文件导入mysql。 这意味着我将设置txt文件的url,并每隔5秒钟,它会导入到MySQL。 请帮助我,并对不起我的英语。谢谢所有

+3

您需要设置“Cron Job” – AkshayP

+0

您可能想使用函数'readfile'从文件系统加载文件并对其作出反应(如将其数据导入到数据库中)。 – paskl

+0

您还应该停止使用不推荐使用的'mysql_ *'函数并开始转义输入(或者使用带有mysqli或pdo的预准备语句)。 –

回答

0

如果您需要从正在增长的文件列表中每隔5秒导入一个文件,那么您应该为此设置一个cron作业。或者如果你想导入,只需说50个(小)文件,那么你可以把你的代码放在一个递归函数中,睡眠时间为5秒,然后通过shell执行它。由于不推荐使用MySQL(原始)扩展名,因此也请使用MySQLi或PDO_MySQL扩展名。

+0

我需要每5秒钟导入一个文件。只有1个文件 感谢您的支持。 – Kalista