簡體   English   中英

通過MySQL多查詢格式的XML格式錯誤

[英]XML malformed via MySQL multi-query

我需要使用多個查詢,並以as3的形式將它們發送出去以及格式正確的xml。

當我只使用一個查詢時,一切正常。

問題開始於多查詢操作。

現在,當// XML標頭被隱藏時,我在屏幕上打印了一個結構,看起來不錯。

但是,啟用標頭后,將無法執行任何操作!

請看一下我的代碼:

<?php   
$dbHost = "localhost";
$dbUser = "root";
$dbPass = "";
$dbName = "test";
$dbTable = "pizzaroma";

$mysqli = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName);
if ($mysqli->connect_errno)
echo "la conection ha fallado: ".$mysqli->connect_errno;

$query = "SELECT * FROM ".$dbTable." WHERE cat='pizza' AND act='1'  ORDER BY ID ASC; ";
$query .= "SELECT * FROM ".$dbTable." WHERE cat='pasta' AND act='1'  ORDER BY ID ASC; ";    

if ($mysqli->multi_query($query)) {
     // header("Content-type: text/xml");
      echo "<?xml version='1.0' encoding='UTF-8'?>";
      echo "<pics>";
do { 
    echo "<theme name='temporaly'>";
    if ($result = $mysqli->store_result()) {

         while ($row = $result->fetch_assoc()) {

           echo "<pic name='".$row['NAME']."'  desc='".$row['DESCES']."' price='".$row['PRICE']."'/>";
           echo "</pic>";
        }
        $result->free();
    }
         echo "</theme>";
    if ($mysqli->more_results()) {          
    }

    } 
    while ($mysqli->next_result());  
        echo "</pics>";
}

    $mysqli->close();
    ?>

早些時候我使用“ echo”,..現在我把“ printf”放在那里,..但是只有幾行,我不確定這是否是原因..但是現在可以了。 它把我扔了

“嚴格的標准:mysqli_next_result():沒有下一個結果集。請致電mysqli_more_results()/ mysqli :: more_results()以檢查是否調用此函數/方法”,因此在尋求幫助時,我在以下地方找到了這條線:

 do{} while(mysqli_more_results($db) && mysqli_next_result($db));

解決了xml錯誤的問題。

<?php


$dbHost = "localhost";
$dbUser = "root";
$dbPass = "";
$dbName = "test";
$dbTable = "pizzaroma";

$mysqli = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName);
if ($mysqli->connect_errno)
echo "la conection ha fallado: ".$mysqli->connect_errno;

$query = "SELECT * FROM ".$dbTable." WHERE cat='pizza' AND act='1'  ORDER BY ID ASC; ";
$query .= "SELECT * FROM ".$dbTable." WHERE cat='pasta' AND act='1'  ORDER BY ID ASC; ";
$query .= "SELECT * FROM ".$dbTable." WHERE cat='carne' AND act='1'  ORDER BY ID ASC; ";


if ($mysqli->multi_query($query)) {
      header("Content-type: text/xml");
      printf( "<?xml version='1.0' encoding='UTF-8'?>");
      printf( "<pics>");
do { 
    printf( "<theme name='temporaly'>");
    if ($result = $mysqli->store_result()) {

         while ($row = $result->fetch_assoc()) {

           echo "<pic name='".$row['NAME']."'/>";

        }
        $result->free();
    }
         echo "</theme>";

    } 
    while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli));

        echo "</pics>";
}

    $mysqli->close();
    ?>

后來我不得不序列化xml輸出,這很容易:D

>> $i=1;   and ... do {printf( "<theme name='".$i++."'>");

但是現在,..我如何將輸出serialID與包含類別名稱的數組中的元素相關聯。 就像是...

如果name =“ 1”,則name =“ firtsArrayChild”

任何想法? 但我認為那是另外一首歌的另一個問題! 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM