获取数据库的当前快照,并在相同的PHP脚本中将其发送到FTP:需要建议

时间:2010-03-15 14:48:46

标签: php mysql ftp

不确定我是否可以这样做。我想获取数据库的当前快照并通过FTP服务器发送,这两个功能都应该在PHP脚本中实现。

以下是我正在考虑的步骤。

在我的php脚本中(基本上是将PDO扩展到我的Dao类然后准备查询),

 $qry = SELECT * FROM MyTablename;
 $stmt = $this->prepare($qry);
 $stmt = $this->execute();

现在我将使用$stmtfputcsv存储在csv文件中,或者我将从脚本本身执行sql命令,然后尝试将结果存储在$file(csv file)中请注意,此时我没有任何csv文件,基本上我必须创建一个,然后让它说$file,然后

$file = fputcsv($stmt); or $file = exec("Select * from MyTablename");

这会将所有记录都放在文件中吗?如果是,那么我将使用FTP功能将文件传输到FTP文件夹。

我不确定这种方法是否有效,并且还担心需要准备$qry

建议的任何建议或不同方法都将受到高度赞赏。

谢谢!!!

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql'); 
mysql_select_db($dbname); 
$list = array(); 
$q = mysql_query("SELECT * from table"); 

while($row = mysql_fetch_assoc($q)){ 
    $list[] = $row; 
    } 
$fp = fopen("file.csv", 'w+'); 
foreach ($list as $line) { 
    fputcsv ($fp, implode(',', $line)); 
} 

然后尝试:

$conn_id = ftpconnect('host',21);
$login_result = ftp_login($conn_id, 'user_name', 'user_pass');
ftp_fput($conn_id, 'file.csv', $fp, FTP_ASCII);

ftp_close($conn_id);
fclose($fp);

我编写的代码没有测试它,但应该是这样的;)

祝你好运。