2012-06-14 3 views
0

누군가가 MySQL에 XML 데이터를 저장하고 읽는 방법에 대한 예제를 제공해 줄 수 있습니까? PHP를 사용하고 있는데이 설명서를 읽었습니다 : http://dev.mysql.com/doc/refman/5.6/en/xml-functions.htmlMySQL에서 XML 함수 사용 예제. PHP

그러나 나는 원하는 결과를 얻을 수 없습니다.

대단히 감사합니다. (필자는 XML에 저장된 데이터에 대한 호출을 많이 가지고 있기 때문에 나는 이것을 사용하고, 나는 빠른 기능이 필요합니다.) 요청에 따라

[편집] :

나는 현재 낙찰 .XML이 각 파일의 25-50 개 요소에서 파일을 가져옵니다. 나는 여러 파일에서 1 초에 수백 번 값을 물어 본다. 여기 I/O 작업에서 큰 병목 현상이 있음을 발견했습니다.

.xml 파일의 데이터를 데이터베이스에 저장하면 훨씬 더 빠른 프로세스 인 에 액세스 할 수 있다고 생각합니다.

나는이 문제를 해결하는 방법에 대한 도움/조언을 요청합니다.

+0

그냥 내 2 센트,하지만하지 않는 한 XML 문서를 데이터베이스에 저장하면 안되는 고유 한 요구 사항이 있습니다. 다행히도 들어오는 문서를 관계형 구조로 파쇄 한 다음 아웃 바운드 요청이있을 때 DB에서 즉시 XML을 생성하는 것이 좋습니다. –

+0

그 문제는 다음과 같습니다. .xml 파일의 데이터를 많이 호출합니다. 입출력 호출은시기 적절합니다. 그래서 .xml 파일을 데이터베이스에 저장해야합니다. 30k .xml 파일에 25-50 개의 요소가있는 anywhow가 있습니다. 나는 많은 SQL 문을 쓰는 것이 XML 데이터를 데이터베이스에 보내는 잘못된 방법이라고 생각한다. 유일한 해결책은 직렬화 된 XML 파일을 BLOB에 저장하고 DOM 파서를 deserialize하는 것입니다. 그러나 그것도 비싸다. – Adola

+0

당신이 무엇을하려고하는지 그리고 어디서 붙어 있는지에 대한 좀 더 구체적인 데이터로 [질문 업데이트] (http://stackoverflow.com/posts/11033605/edit)를 원할 수 있습니다. 사람들에게 일반적인 자습서를 제공하도록 요청하는 것은 범위를 벗어납니다. – Gordon

답변

0

데이터베이스에 저장된 데이터에 액세스하는 것이 디스크에서 액세스하는 것보다 빠르지 않습니다. 데이터베이스 속도는 데이터를 인덱싱 할 수 있도록 제공되며 XML 내용은 인덱싱되지 않습니다 (가정).

XML에서 키 필드를 가져올 수 없다면 도움이되지 않을 것입니다.

그러나, 실제 질문에 (오히려 좋은 생각인지 이상) 대답, 당신은 mysqli 연결과 준비된 명령문 사용하는 경우 : 같은

if ($stmt = $mysqli->prepare("INSERT INTO MY_DATA_TABLE (Id, Data) VALUES(?,?)")) 
{ 
    $stmt->bind_param('ib', $id, $data); 
    for($i = 0; $i < $numfiles; $i++) 
    { 
     $id= $row; 
     $data= readfile($id); 
     $stmt->execute(); 
    } 
} 

뭔가? (시도하지 않은).

편집 : 그냥 XML 파일에서 요소를 읽으려면

그러나 당신의 대답에서

, 당신은 아마 간단한 XML 볼 필요가 : 여기 http://php.net/manual/en/book.simplexml.php

+0

나는 그것이 무엇인지, 또는이 코드가 무엇을하는지 모르기 때문에 mysqli를 찾고있다. 난 그냥 .xml 파일에서 모든 요소를 ​​추출하고 데이터베이스에 저장하는 게으른 방법을 찾고 있다고 생각합니다. – Adola

+0

좋아요, 당신의 질문은 XML 파일을 데이터베이스에 저장하길 원했던 것 같았습니다. (나는 질문의 첫 부분에서 좋은 생각이 아닙니다.) XML 파일의 요소를 데이터베이스에 저장하려는 경우 이는 다른 질문이며 XML 파일의 데이터 유형에 따라 달라질 수 있습니다. 이 코드는 많은 양의 파일을 읽고 그 내용을 데이터베이스 blob에 저장하고 있습니다. – Woody

+0

아, 그래, 그게 내가 찾고있는 것 같지 않아. 이 mysqli가 내가 원하는 것을 더 많이 가리키고있는 것처럼 보입니다. 잘못된 방향으로 유감스럽게 생각합니다. xml 파일의 elments를 데이터베이스에 저장하는 방법에 대해 묻고 싶습니다. 그리고 내 XML 파일에있는 데이터의 유형에 관해서는 어떻게 대답해야할지 모르겠습니다. 인트, varchars? 나는 그 질문을 완전히 이해하지 못한다. 감사합니다. – Adola