我正在尝试使用PHP DOM解析XML,然后将这些数据插入MySQL表中,我使用以下代码:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("testrtap11.xml");
mysql_select_db("zeeshan_database1", $con);
$x=$xmlDoc->getElementsByTagName('RECORD');
$z=$xmlDoc->getElementsByTagName('TITLE');
$w=$xmlDoc->getElementsByTagName('PRIMARY_AUTHOR');
$y=$xmlDoc->getElementsByTagName('JOURNAL_CONFERENCE');
for($i=0; $i<=$x->length-1; $i++)
{
$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES('$z->item($i)->nodeValue','$w->item($i)->nodeValue','$y->item($i)->nodeValue')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
}
mysql_close($con)
?>
输入的数据不正确。我甚至尝试将我的xml解析值存储在变量中,然后使用该变量插入数据,即使这样也行不通。我使用了这样的变量:
for($i=0; $i<=$x->length-1; $i++)
{
$zz=$z->item($i)->nodeValue);
$ww=$w->item($i)->nodeValue);
$yy=$y->item($i)->nodeValue);
$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES('$zz','$ww','$yy')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
}
我的xml看起来像这样:
<RTAP>
<RECORD>
<TITLE> </TITLE>
<PRIMARY_AUTHOR> </PRIMARY_AUTHOR>
<JOURNAL_CONFERENCE> </JOURNAL_CONFERENCE>
</RECORD>
</RTAP>
请帮助我,我该怎么办
最佳Zeeshan
答案 0 :(得分:2)
尝试这样的事情:
foreach ($xmlDoc->RECORD as $record)
{
$sql = 'INSERT INTO Persons (FirstName, LastName, Age) VALUES('
. '"' . mysql_escape_string($record->TITLE->nodeValue) . '", '
. '"' . mysql_escape_string($record->PRIMARY_AUTHOR->nodeValue) . '", '
. '"' . mysql_escape_string($record->JOURNAL_CONFERENCE->nodeValue) . '")'
if (!mysql_query($sql,$con))
die('Error: ' . mysql_error());
echo "1 record added";
}
你实际上并没有说出插入的数据有什么问题......
答案 1 :(得分:0)
我尝试在上面提到的原始代码上使用select命令:
$ result = mysql_query(“SELECT * FROM Persons”);
while($ row = mysql_fetch_array($ result))
{
echo $ row ['FirstName']。 “”。 $行[ '名字'];
echo“
”;
}
这是我得到的输出: (0) - &gt; nodeValue(0) - &gt; nodeValue (1) - &gt; nodeValue(1) - &gt; nodeValue (2) - &gt; nodeValue(2) - &gt; nodeValue (3) - &gt; nodeValue(3) - &gt; nodeValue