>我有这个XML文件
<response>
<rows>
<row>
<id>6899</id><Number>3</Number><Parent>No Parent</Parent><State>state</State>
<DateFmt>27-AUG-2013</DateFmt>
</row>
<row>
<id>5523</id><Number>3</Number><Parent>YES</Parent><State>state</State>
<DateFmt>16-AUG-2013</DateFmt>
</row>
<row>
<id>80193</id><Number>1</Number><Parent>NO</Parent><State>state</State>
<DateFmt>18-SEP-2013</DateFmt>
</row>
</rows>
我正在使用 php 来获取内容 simplexml_load_string()然后 2 个 foreach 循环来获取 XML 中的字符串代码:
$xml = simplexml_load_string($result);
if(!$xml) {
$errors .= "...";
}else{
foreach($xml->rows as $rows)
{
foreach($rows->row as $row)
{
if(isset($row->DateFmt) AND !empty($row->DateFmt))
{
$DateFmt = date("Y-m-d", strtotime($row->DateFmt)); //format the data to suit the MDB table structure
}else $DateFmt = "NULL"; //put null so the MySQL will recognize an empty set
$Query .= "(
'".mysql_real_escape_string($row->id)."',
'".mysql_real_escape_string($row->Number)."',
'".mysql_real_escape_string($row->Parent)."',
'".mysql_real_escape_string($row->State)."',
if ($DateFmt == 'NULL') $Query .= " NULL, ";
else $Query .= "'".$DateFmt."', ";
}
}
结果停在 DateFmt 并重新开始,没有我如何尝试这是查询变量的回显。
( '6899', '3', 'No Parent', 'state', ( '5523', '3', 'YES', 'state', ( '8139', '1', 'NO', 'state',
一些帮助?可能是因为空值?
如果我从XML或变量打印datefmt,我会得到正确的值
谢谢。
您没有以正确的方式连接$Query
变量。
应该是这样的(我也认为你想在昏迷前关闭括号)。
您还应该检查date
命令是否以正确的方式解析您的日期,并且有一些东西是$DateFmt
变量。
$Query .= "(
'".mysql_real_escape_string($row->id)."',
'".mysql_real_escape_string($row->Number)."',
'".mysql_real_escape_string($row->Parent)."',
'".mysql_real_escape_string($row->State)."',";
if ($DateFmt == 'NULL'){
$Query .= " NULL), ";
}
elseif ($DateFmt == FALSE){
$Query .= " NULL), "; //$DateFmt is not set because date("Y-m-d", strtotime($row->DateFmt)) failed
}
else{
$Query .= "'".$DateFmt."'), ";
}