データベースにXMLデータを挿入しようとする際に問題が発生します。私は過去2日間googleで研究してきましたが、私はまだ苦労しています。誰かがそれが最も高く評価されるのを助けることができたら。どうもありがとうございました。データベースへのXMLデータの挿入に失敗する
私はデータを挿入しようとすると、私は次のエラーメッセージが出ます:
<?php
$db = new PDO('mysql:host=localhost;dbname=data', 'root', '');
$xmldoc = new DOMDocument();
$xmldoc->load('data.xml');
$xmldata = $xmldoc->getElementsByTagName('group');
$xmlcount = $xmldata->length;
for ($i=0; $i < $xmlcount; $i++) {
$id = $xmldata->item($i)->getElementsByTagName('id')->item(0)->childNodes->item(0)->nodeValue;
$group = $xmldata->item($i)->getElementsByTagName('group')->item(0)->childNodes->item(0)->nodeValue;
$category = $xmldata->item($i)->getElementsByTagName('category')->item(0)->childNodes->item(0)->nodeValue;
$question = $xmldata->item($i)->getElementsByTagName('question')->item(0)->childNodes->item(0)->nodeValue;
$a = $xmldata->item($i)->getElementsByTagName('a')->item(0)->childNodes->item(0)->nodeValue;
$b = $xmldata->item($i)->getElementsByTagName('b')->item(0)->childNodes->item(0)->nodeValue;
$c = $xmldata->item($i)->getElementsByTagName('c')->item(0)->childNodes->item(0)->nodeValue;
$d = $xmldata->item($i)->getElementsByTagName('d')->item(0)->childNodes->item(0)->nodeValue;
$stmt = $db->prepare("insert into xml values(?,?,?,?,?,?,?,?)");
$stmt->bindParam(1,$group);
$stmt->bindParam(2,$category);
$stmt->bindParam(3,$question);
$stmt->bindParam(4,$a);
$stmt->bindParam(5,$b);
$stmt->bindParam(6,$c);
$stmt->bindParam(7,$d);
$stmt->execute();
printf($name.'<br />');
}
?>
insert_into_database.php
Notice: Trying to get property of non-object in insert_into_database.php on line 13
Fatal error: Call to a member function item() on null in insert_into_database.php on line 13
data.xmlに
<?xml version="1.0" encoding="UTF-8"?>
<questions>
<group name="Question Group 1">
<id>1</id>
<category>Category A</category>
<question name="Question 1" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
<question name="Question 2" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
<question name="Question 3" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
<question name="Question 4" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
<question name="Question 5" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
</group>
<group name="Question Group 2">
<id>2</id>
<category>Category B</category>
<question name="Question 1" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
<question name="Question 2" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
<question name="Question 3" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
<question name="Question 4" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
<question name="Question 5" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
</group>
<group name="Question Group 3">
<id>3</id>
<category>Category C</category>
<question name="Question 1" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
<question name="Question 2" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
<question name="Question 3" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
<question name="Question 4" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
<question name="Question 5" a="Answer 1" b="Answer 2" c="Answer 3" d="Answer 4"/>
</group>
</questions>
ことができます。ほとんどのデータは、最初の構造に変換するXSLT(文字列として埋め込まれたが、外部ファイルにすることができます)の下に、属性に常駐しているのであなたはエラーが発生した回線を隔離しますか?それは少し簡単に従うことになります –
こんにちは、私はどのように行を分けているのか分かりませんが、行13は "$ group = $ xmldata-> item($ i) - > getElementsByTagName( 'group') - > item(0) - > childNodes-> item(0) - > nodeValue; " – ToCode
これは '$ xmldoc-> load( 'data.xml');や' $ xmldata = $ xmldoc-> getElementsByTagName( 'group'); 'のように思われます。彼らは値を持っている場合? –