我知道这个问题已经被很多人问过了,我已经按照指南说了但很抱歉,直到现在我无法解决我的问题。我有许多XML文件保存在我的FTP服务器上的本地目录中。现在我需要逐行读取每个XML文件并将其放在我已创建的MySQL数据库中。在这里,我附上了我的代码,它没有在我的服务器和数据库中运行,我没有看到任何内容。
// Read filenames in current directory looking for XML files
$dir = "/path/to/filename";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (($file !== '.') && ($file !== '..') ) {
$xml = simplexml_load_file($dir.$file);
//$RGSostituzione = $xml->attributes()->Sostituzione;
}
}
closedir($dh);
}
}
// Loop through each XML file in the current directory
$query = array();
foreach($dir as $filename) {
$mess =simplexml_load_file("/path/to/filename".$filename);
$time = mysql_real_escape_string($mess->time);
$Id = mysql_real_escape_string($mess->Id);
$From = mysql_real_escape_string($mess->From);
$Subject = mysql_real_escape_string($mess->Subject);
$address = mysql_real_escape_string($mess->address);
$Body = mysql_real_escape_string($mess->Body);
$query[] = "('$time', '$Id', '$Subject','$address','$Body')";
} if(!empty($query)) {
$query = implode(",",$query);
mysql_query("INSERT INTO xml (time, Id, From, Subject,address,Body)VALUES {$query}") or die("Query 2 non valida: " . mysql_error());
}
//close connection
mysql_close($conn);
?>
已编辑_:我的上一个请求来自此给定代码 -
// Loop through each XML file in the current directory
$query = array();
foreach($dir as $filename) {
$mess =simplexml_load_file("/path/to/filename".$filename);
在$ mess之后我想在foreach循环中写一个if statemnet ..如果乱七八糟的读取路径打印错误?我怎么称呼是声明不要得到。如果有人能帮助我,那就更好了。
答案 0 :(得分:0)
你能否对你得到的错误更具体一点?
我看到的可能性是,
1)时间可以是一个字符串,你没有引号,$ query变量是空白的。您在mysql_query中传递的$ query变量中没有值 2)MySQL连接问题 3)MySQL / PHP耗尽执行时间
尝试在单引号中添加$ time。
同样,在循环中运行MySQL查询并不是一个好主意。在循环内创建一个Query并在完成循环后运行它。它应该看起来像
已编辑:使用此代码并尝试。不要忘记替换文件夹/文件的路径
error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
// Read filenames in current directory looking for XML files
$dir = "/path/to/filename";
$file_arr = array();
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (($file !== '.') && ($file !== '..') ) {
$file_arr[] = $file;
}
}
closedir($dh);
}
}
$query = array();
foreach($file_arr as $filename) {
$mess =simplexml_load_file("/path/to/file/".$filename);
$time = mysql_real_escape_string($mess->time);
$Id = mysql_real_escape_string($mess->Id);
$From = mysql_real_escape_string($mess->From);
$Subject = mysql_real_escape_string($mess->Subject);
$address = mysql_real_escape_string($mess->address);
$Body = mysql_real_escape_string($mess->Body);
$query[] = "('$time', '$Id', '$Subject','$address','$Body')";
} if(!empty($query)) {
$query = implode(",",$query);
mysql_query("INSERT INTO xml (time, Id, From, Subject,address,Body)VALUES {$query}") or die("Query 2 non valida: " . mysql_error());
}