56

これが私のコードです:

<?php
// 27/01/2016 Edit:
$result = mysql_query("A Long mysql query");
$rss = new SimpleXMLElement('<rss version="2.0" />');
$products = $rss->addChild('products');
///
while($row = mysql_fetch_array($result)){
$product = $products->addChild('category');
$product->addChild('product_id',"$row[product_id]");
$product->addChild('cat_id',"$row[cat_id]");
$product->addChild('cat_name',"$row[cat_name]");
$product->addchild('product_code',"$row[product_code]");
$product->addchild('product_name',"$row[product_name]");
$product->addChild('description','$row[description]');
$product->addchild('rating',"$row[rating]");
$product->addchild('image_url','$row[imag_url]');
$product->addchild('price',"$row[price]");
$product->addchild('discount',"$row[discount]");
$product->addchild('stock_status',"$row[stock_status]");
$product->addchild('stock_quantity',"$row[stock_quantity]");
$product->addchild('weight',"$row[weight]");
$product->addchild('length',"$row[length]");
$product->addchild('width',"$row[width]");
$product->addchild('height',"$row[height]");
$product->addchild('colour',"$row[colour]");
$product->addchild('size',"$row[size]");
$product->addchild('material',"$row[material]");
$product->addchild('pattern',"$row[pattern]");
};

Header('Content-type: text/xml');
print($rss->asXML());
?>

ここにエラーがあります:

警告: SimpleXMLElement::addChild() [simplexmlelement.addchild]: C:\wamp\www\rabwah\core.php の 40 行目でエンティティ参照 _Coke.jpg が終了していません

エラーは の行にあり'$row[imag_url]'ます。

4

7 に答える 7

45

SimpleXMLElement実際には、オブジェクトのように動作するシステム リソースです。これにより、ループの操作が難しくなります。したがって、これの代わりに新しい子要素を追加しようとすると:

$product->addchild('element', $value);

これを行う:

$product->element = $value;

または、, を使用htmlspecialchars()して html 文字をエスケープできます。

ノート:

mysql_*で廃止され、 で削除されました。そのため、代わりにmysqli_*orを使用しますPDO
PHP で mysql_* 関数を使用してはいけないのはなぜですか?

于 2013-06-11T11:56:18.357 に答える
0

変更してみてください -

$product->addchild('image_url','$row[imag_url]');

$product->addchild('image_url',"$row[\"imag_url\"]");

また

$product->addchild('image_url',$row['imag_url']);

Image_urlの周囲 に引用符を巻き込みすぎないように 編集します。Barrmarの厚意による

于 2013-06-10T15:12:12.717 に答える