在PHP中执行sql后删除文件

时间:2013-11-19 10:06:57

标签: php sql

我正在尝试读取多个.sql文件,然后将它们执行到数据库中。这有效,但现在我需要在成功导入数据库后删除该文件。

我怎样才能做到这一点?

<?php 
function scan_for_sql_files($path){
    $itdir = new \RecursiveIteratorIterator(
    new \RecursiveDirectoryIterator($path, \RecursiveDirectoryIterator::SKIP_DOTS),
    \RecursiveIteratorIterator::SELF_FIRST,
    \RecursiveIteratorIterator::CATCH_GET_CHILD);
    $files = array();
    foreach ($itdir as $path=>$dir){
        if ($dir->isFile()){
            $ext = substr(strtolower($path), -3);
            if($ext == 'sql'){
                $files[] = array('path' => $path);
            }
        }
    }
    return $files;
}

//get files
$files = scan_for_sql_files('mysqls');
//Do sql
foreach($files as $file){
    $sql = file_get_contents($file['path']);
    $qr = $dbh->exec($sql);
}
?>

3 个答案:

答案 0 :(得分:0)

您可以使用unlink()功能删除文件。

unlink('test.html');

foreach($files as $file){
  $sql = file_get_contents($file['path']);
  $qr = $dbh->exec($sql);
   if(is_file($file['path'])){
     unlink($file['path']);
   }
}

参考:http://us2.php.net/unlink

答案 1 :(得分:0)

您可以添加&#34;取消关联&#34;功能摆脱文件

简单修改:

foreach($files as $file){
   $sql = file_get_contents($file['path']);
   $qr = $dbh->exec($sql);
   unlink($file['path']);
}

http://www.w3schools.com/php/func_filesystem_unlink.asp

"Unlink" reference

答案 2 :(得分:0)

您可以通过此

删除您的sql文件

的unlink( 'database.sql');

您可以通过此

删除sql文件内容

file_put_contents(“database.sql”,“”);

如果您正在使用窗口操作系统,请不要担心,但如果您在linux中工作,则必须设置所有sql文件的权限,否则您的文件将无法通过您的php脚本访问