我的问题:无法将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']。仍然无法正常工作。
感谢您在这个问题上的时间和帮助。亚伦
我看到一些问题:
首先,simplexml_load_string
不接受数组参数,只接受 XML 字符串。 由于$params
不是有效的参数,因此它返回布尔false
。 即使成功,它也返回一个SimpleXMLElement
。 若要将其转换为 XML 字符串,必须在将返回的对象传递给 Zend_Db_Table::update()
之前对返回的对象调用 asXML()
方法。
其次,XML 很可能不能仅仅"追加"到其他 XML 上。 我不知道您的表包含什么,但需要以编程方式将 XML 添加到现有 XML 中。 不能追加 XML,因为需要将要添加的数据添加到正确的节点。
您需要做的是首先读取该列的值,使用 SimpleXML
对其进行解析,使用 SimpleXML 函数之一将新数据添加到文档中的相应节点,然后执行更新。
希望有帮助。