作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道这个问题已经被很多人问过,并且我已经遵循了一些指南,但很抱歉,到目前为止我无法解决我的问题。我有许多 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 ..如果困惑不读取路径,则打印错误?我应该如何称呼是声明不明白。如果有人可以帮助我那就太好了。
最佳答案
您能更具体地说明您遇到的错误吗?
我看到的可能性是,
1) 时间可以是一个字符串,但您没有将其放在引号中,并且 $query 变量为空。您在 mysql_query 中传递的 $query 变量中没有值2)MySQL连接问题3)MySQL/PHP执行时间耗尽
尝试在单引号中添加 $time。
再说一次,在循环内运行 MySQL 查询不是一个好主意。在循环内创建一个查询并在完成循环后运行它。它应该看起来几乎像
已编辑:使用此代码并尝试。不要忘记替换文件夹/文件的路径
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());
}
关于php - 如何将xml文件插入到mysql表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19422623/
我是一名优秀的程序员,十分优秀!