ZEND:将XML数据附加到SQLDataBase(XML)

时间:2012-08-10 21:25:57

标签: php mysql xml zend-framework

我的问题:无法将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']了。仍然没有功能。

感谢您抽出时间和协助解决此问题。 亚伦

1 个答案:

答案 0 :(得分:0)

我看到了一些问题:

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

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

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

希望有所帮助。