在MySQL表中插入XML解析数据的问题

时间:2009-06-18 16:20:49

标签: php mysql xml

我正在尝试使用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

2 个答案:

答案 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

相关问题