【发布时间】:2018-10-31 11:05:09
【问题描述】:
我需要编写一个脚本,它将 XML 从 FTP 复制的文件下载到服务器,该服务器将由该脚本添加到数据库中。问题是我不知道是否可以连接到放置数据库的服务器并将文件复制到可以从中下载它们的文件夹中?
数据库安装在 Synology MariaDB 10(通过 UNIX 套接字的 localhost)上。
<?php
$ftp_serwer = "xxx";
$ftp_nazwa_uzytkownika = "xxx";
$ftp_haslo = "xxx";
// nawiązanie połączenia lub zakończenie działania skryptu
$conn_id = ftp_connect($ftp_serwer) or die("Nie można połączyć się z $ftp_serwer");
// próba logowania
if (@ftp_login($conn_id, $ftp_nazwa_uzytkownika, $ftp_haslo)) {
echo "Połączony jako $ftp_nazwa_uzytkownika@$ftp_serwer\n";
} else {
echo "Nie można zalogować się jako $ftp_nazwa_uzytkownika\n";
}
// nawiązanie połączenia z baza danych msql
$servername = "xxx";
$username = "xxx";
$password = "xxx";
$dbname = "zlecenia";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname, 3307);
$conn->set_charset("utf8");
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// define some variables
$local_file = 'Z:\htdocs\phpmysql\TEST\CRM\localfile\yahootable.xml';
$server_file = '/TU WGRYWAC DANE/yahootable.xml';
// set up basic connection
$conn_id = ftp_connect($ftp_serwer);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_nazwa_uzytkownika, $ftp_haslo);
// try to download $server_file and save to $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Successfully written to $local_file\n";
} else {
echo "There was a problem\n";
}
$sql = "LOAD DATA LOCAL INFILE
'Z:/htdocs/phpmysql/TEST/CRM/localfile/yahootable.xml'
INTO TABLE
yahootable
CHARACTER SET 'utf8'
LINES STARTING BY '<row>' TERMINATED BY '</row>'
(@tmp)
SET
id = ExtractValue(@tmp, '//id'),
various = ExtractValue(@tmp, '//various'),
message = ExtractValue(@tmp, '//message')
";
// zamknięcie połączenia
ftp_close($conn_id);
mysqli_close($conn);
?>
所以我的问题是:
- 我必须在哪里上传文件,以便服务器可以使用
LOAD DATA INFILE? - 如何使用脚本将文件复制到此文件夹?
【问题讨论】: