0

私の問題:MYSQLデータベース内の既存のXMLデータにXMLデータを追加できません。

私は配列を持っています-$buyer。この配列の中には、(shippingTotal => 55)に似た$keyと$valueがあります。私がやりたいのは、次のようなものを使用することです

$param = array(
 'shippingTotal' => $shippingTotal
);
 $where['quote_data = ?'] = $quoteNumber
$n = $db->update('quote_xml', simplexml_load_string($param), $where);

私の問題は、quote_data内の現在のデータが多くの情報を含むXML要素であるということです。単にshippingTotalを既存のXMLに「固定」する方法はありますか?上記のコードを使用すると、quote_dataが空になります。

また、$ Buyer ['shippingTotal']を使用する必要がないように、$shippingTotalという変数を作成しました。まだ機能していません。

この問題にご協力いただき、ありがとうございます。アーロン

4

1 に答える 1

0

これにはいくつかの問題があります。

まず、simplexml_load_string配列パラメーターを受け入れず、XML 文字列のみを受け入れます。$paramsは有効な引数ではないため、 boolean を返していますfalse。成功した場合でも、 を返しますSimpleXMLElement。これを XML 文字列に変換するにはasXML()、返されたオブジェクトを に渡す前にメソッドを呼び出す必要がありますZend_Db_Table::update()

次に、XML を他の XML に単に「追加」することはできません。あなたのテーブルが何を保持しているのか正確にはわかりませんが、XML を既存の XML にプログラムで追加する必要があります。追加するデータを適切なノードに追加する必要があるため、XML を追加することはできません。

まず、その列の値を読み取り、 を使用して解析し、 S​​impleXML 関数SimpleXMLの 1 つを使用してドキュメント内の適切なノードに新しいデータを追加し、更新を実行する必要があります。

それが役立つことを願っています。

于 2012-08-10T21:37:18.603 に答える