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

Php ZEND:将XML数据附加到SQLDataBase(XML),php,mysql,xml,zend-framework,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_st

我的问题:无法将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_数据中的当前数据是一个包含大量信息的XML元素。有没有办法将shippingTotal“粘贴”到现有的XML中?当我使用上面的代码时,我的quote_数据将变为空

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

感谢您在这个问题上的时间和帮助。
Aaron

我发现这方面存在一些问题:

首先,
simplexml\u load\u string
不接受数组参数,只接受XML字符串。由于
$params
不是有效的参数,因此它将返回布尔值
false
。即使成功,它也会返回一个
simplexmlement
。要将其转换为XML字符串,必须先调用返回对象上的
asXML()
方法,然后再将其传递给
Zend\u Db\u Table::update()

其次,最有可能的是XML不能仅仅“附加”到其他XML上。我不知道您的表到底包含什么,但是需要通过编程将XML添加到现有的XML中。无法追加XML,因为需要将要添加的数据添加到适当的节点

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


希望能有所帮助。

是否更容易“下载”或将整个XML字符串捕获到一个变量中,然后“擦除并替换”表中特定部分的所有内容?也许将XML数据分解成一个数组,将该数组附加到匹配的数组中,然后将其全部返回到XML表单中?这看起来有点迂回和复杂……如果需要操作现有XML,请从表中选择XML字符串,加载它(
$XML=new simplexmlement($XML\u string\u from\u database);
),通过更改现有节点或在适当位置添加新的子节点来添加或更新所需的数据,将其转换回字符串(
$xmlStr=$xml->asXML();
),然后调用
Zend\u Db\u Table::update()
,将
$xmlStr
作为数据。没有问题,如果您有进一步的问题,请发回。