2014-09-01 36 views
1

我想下面插入XML字符串到MySQL數據庫無法插入XML字符串到MySQL表

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

所以我寫了下面的代碼

 $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"; 

} 

,但沒有在數據庫中插入。如果我將一個簡單的文本替換爲值爲stanzaToInsert的xml字符串,那麼它會將值插入到數據庫中。

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

所以問題是與XML字符串。

所以我可以知道「我有什麼問題」?

+0

您是否收到任何錯誤?如果沒有,那麼檢查你的消息類型。 – 2014-09-01 05:33:06

+0

@ManishJ:不,沒有任何錯誤。類型是「文本」 – 2014-09-01 05:34:39

+0

你試過addslashes()或mysql_escape_string()嗎? – 2014-09-01 05:36:58

回答

1

你插入這樣

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

值請使用 「N」 以前生產XML字符串惰性這樣的XML消息之前應該使用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

抱歉老兄,它不工作 – 2014-09-01 06:55:39

+0

你可以發佈完整的代碼嗎? – 2014-09-01 07:02:48

+0

通過添加代碼來更新問題 – 2014-09-01 08:44:34