2015-03-13 77 views
2

我的应用程序是在服务器A和数据库中的其他服务器服务器B. 与MySQL OUTFILE成/服务器B. 的tmp目录下我想用PHP代码下载服务​​器APHP下载文件

这个文件
<?php 
    $fullpath = '/tmp/users.csv'; 

    Mysql SELECT ......INTO OUTFILE '$fullpath' 
    FIELDS TERMINATED BY ',' 
    ENCLOSED BY '\"' 
    ESCAPED BY '\"' 
    LINES TERMINATED BY '\n' 

    $connection = ssh2_connect('serverb', 22); 
    ssh2_auth_password($connection, 'username', 'password'); 

    if(ssh2_scp_recv($connection, $fullpath, $fullpath)) { 
     echo $filepath.' copied to server!!'; 
    } 
    $filename1 = 'users.csv'; 

    $mm_type="application/csv"; 
    header("Pragma: public"); 
    header("Expires: 0"); 
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
    header("Cache-Control: public"); 
    header("Content-Description: File Transfer"); 
    header('Content-Type: application/csv; charset=UTF-8'); 
    header('Content-Disposition: attachment; filename="'.$filename1.'"'); 
    header("Content-Transfer-Encoding: binary\n"); 
    readfile($fullpath); 
    exit; 
?> 

与MySQL选择保存在服务器B OUTFILE文件,但无法从服务器A,其中的PHP代码运行 问候

+0

嘿,语法错误!你不能像这样执行的查询? – Raptor 2015-03-13 08:29:25

+0

@Raptor;查询正确执行,我得到ServerB上“/tmp/users.csv” csv文件。这里是一个查询的例子SELECT'First Name','Last Name','User Code' UNION (SELECT fname,lname,ucode FROM csvfields INTO OUTFILE'$ fullpath' FIELDS TERMINATED BY',' ENCLOSED BY' \“” ESCAPED BY '\”' LINES TERMINATED BY '\ n' ) – Aruti 2015-03-15 09:49:36

回答

1

您也可以尝试以CSV格式下载数据“fputcsv”功能下载。 您可以与数据库连接为你的应用程序做

$filename = 'users.csv'; 
header('Content-Type: text/csv; charset=utf-8'); 
header('Content-Disposition: attachment; filename='.$filename.'.csv'); 
ob_clean(); 

$output = fopen('php://output', 'w'); 

fputcsv($output, array('Column1', 'Column2')); 

$exceldata = $this->ModelName->query("SELECT field1, field2 from TableName"); 
// loop over the rows, outputting them 
foreach($exceldata as $exceldataval){ 
fputcsv($output, $exceldataval); 
} 

fclose($output); 
exit; 
+0

谢谢@Amit马安,这是工作:) – Aruti 2015-03-16 11:16:17

0

您还可以使用SCP命令从serverA的移动文件到ServerB

SCP destination_server_username @ IP地址:/path/filename.zip usource_server_username @IP:/path/file.zip