Возьмите текущий снимок БД и отправьте его на FTP в тех же сценариях PHP: необходим совет - PullRequest
0 голосов
/ 15 марта 2010

Не уверен, смогу ли я сделать это таким образом. Я хочу получить текущий снимок базы данных и отправить его через FTP-сервер, обе эти функции должны быть реализованы в сценариях PHP.

Вот шаги, о которых я думаю сейчас.

В моих сценариях php (в основном я расширяю PDO в свой класс Dao и затем готовлю запрос),

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

Теперь я буду хранить $stmt в CSV-файле, используя fputcsv, или я выполню команду sql из самого скрипта, а затем попытаюсь сохранить результат в примечании $file(csv file), которого у меня нет CSV-файл со мной на данный момент, в основном мне придется создать один и, скажем, его $file, так что тогда

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

Поместит ли это все записи в файл? Если да, то я буду использовать функцию FTP для передачи файла в папку FTP.

Я не уверен, что этот подход будет работать, а также у меня есть сомнения относительно необходимости подготовки $qry

Буду очень признателен за любые предложения или другие советы.

Спасибо !!!

1 Ответ

1 голос
/ 16 марта 2010

попробуйте что-то вроде этого:

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);

Я пишу код без тестирования, но должно быть что-то вроде этого;)

удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...