2014-09-01 2 views
1

에 XML 문자열을 삽입 할 수 없습니다 나는 그것을 위해 내가 코드는 MySQL의 테이블

 $connection = mysqli_connect("localhost","xyz","abc#123","mydb"); 


for($i = 0 ; $i < $totalMembers ; $i++){ 

       $stanzaToInsert = "<message to='". $groupMembersArray[$i] ."@crossmessenger.com' type='groupchat' from='$mFrom'><x xmlns='jabber:x:event'><offline/><delivered/><displayed/></x><body>$message</body></message>"; 

      $msgSize = strlen($stanzaToInsert); 
       $insertQuery = "INSERT INTO ofOffline VALUES ('$groupMembersArray[$i]', $messageID, $creationDate, $msgSize, '$stanzaToInsert')"; 
      mysqli_query($connection, $insertQuery); 
      mysqli_commit($connection); 
      echo "record $message inserted in table and commited"; 

} 

하지만 아무것도 데이터베이스에 삽입되지 않은 아래에 쓴

<message to='". $groupMembersArray[$i] . "@crossmessenger.com' type='groupchat' from='$mFrom'><x xmlns='jabber:x:event'><offline/><delivered/><displayed/></x><body>$message</body></message> 

그래서 MySQL 데이터베이스에 XML 문자열 아래에 삽입 할. 내가 간단한 문자열에 stanzaToInsert의 값을 의미하는 XML 문자열을 대체하면 데이터베이스에 값이 삽입됩니다.

$insertQuery = "INSERT INTO ofOffline VALUES (
         $groupMembersArray[$i], 
         $messageID, 
         $creationDate, 
         $msgSize, 
         'hard coded string' 
         )"; 

문제는 XML 문자열입니다.

"나에게 무슨 문제가 있는지"알 수 있습니까?

+0

오류가 있습니까? 그렇다면 귀하의 메시지 필드 유형을 확인하십시오. –

+0

@ManishJ : 아니요, 오류가 발생하지 않습니다. 타입은 "text" –

+0

addslashes() 또는 mysql_escape_string()을 시도 했습니까? –

답변

1

이 같은 XML 메시지 불활성의 XML 문자열을 befor "N"을 사용하십시오이

$stanzaToInsert = mysqli_real_escape_string($connection, $stanzaToInsert); 
0

같은 값을 삽입하기 전에 mysqli_real_escape_string를 사용한다 : -

(NULL,N'<?xml version="1.0" encoding="utf-16" standalone="yes"?><!--This is a test XML file--><filemeta filetype="Audio"><Comments /><AlbumTitle /><TrackNumber /><ArtistName /><Year /><Genre /><TrackTitle /></filemeta>') 

Yourcode이 있어야한다 이렇게 : -

$insertQuery = "INSERT INTO ofOffline VALUES (
          $groupMembersArray[$i], 
          $messageID, 
          $creationDate, 
          $msgSize, 
          N'$xmlstring' 
          )"; 
+0

죄송합니다. 작동하지 않습니다. –

+0

전체 코드를 게시 할 수 있습니까? –

+0

코드를 추가하여 질문이 업데이트되었습니다. –