[英]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.