我的问题:无法将XML数据附加到MYSQL数据库中的现有XML数据。
我有一个阵列 - $买家。在这个数组中是一个$ key和$ value类似于(shippingTotal => 55)。我想做的是使用与
类似的东西$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']了。仍然没有功能。
感谢您抽出时间和协助解决此问题。 亚伦
答案 0 :(得分:0)
我看到了一些问题:
首先,simplexml_load_string
不接受数组参数,只接受XML字符串。由于$params
不是有效参数,因此返回布尔值false
。即使成功,也会返回SimpleXMLElement
。要将其转换为XML字符串,您必须在返回的对象上调用asXML()
方法,然后再将其传递给Zend_Db_Table::update()
。
其次,很可能XML不能仅仅“附加”到其他XML。我不确切知道你的表是什么,但XML需要以编程方式添加到现有的XML中。您无法附加XML,因为您要添加的数据需要添加到适当的节点。
您需要做的是首先读取该列的值,使用SimpleXML
解析它,使用SimpleXML functions之一将新数据添加到文档中的相应节点,然后执行更新。
希望有所帮助。