每5秒将TXT文件导入MySQL表

时间:2016-03-04 06:44:12

标签: php mysql

    <?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表。

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

1 个答案:

答案 0 :(得分:0)

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