0

我的问题:无法将 XML 数据附加到 MYSQL 数据库中的现有 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 变成空的。

我还创建了一个名为 $shippingTotal 的变量,这样我就不必使用 $buyer['shippingTotal']。仍然没有功能。

感谢您在此问题上的时间和帮助。亚伦

4

1 回答 1

0

我看到了一些问题:

首先,simplexml_load_string不接受数组参数,只接受 XML 字符串。由于$params不是有效参数,因此它返回 boolean false。即使成功,它也会返回一个SimpleXMLElement. 要将其转换为 XML 字符串,您必须先调用asXML()返回对象的方法,然后再将其传递给Zend_Db_Table::update().

其次,很可能 XML 不能仅仅“附加”到其他 XML。我不确切知道您的表包含什么,但需要以编程方式将 XML 添加到现有 XML 中。您不能附加 XML,因为您要添加的数据需要添加到适当的节点。

您需要做的是首先读取该列的值,使用 解析它,使用SimpleXML 函数SimpleXML之一将新数据添加到文档中的适当节点,然后执行更新。

希望有帮助。

于 2012-08-10T21:37:18.603 回答