Php 在magento中插入或更新
在magento中,我在这样的表中插入行:Php 在magento中插入或更新,php,mysql,magento,Php,Mysql,Magento,在magento中,我在这样的表中插入行: $table = Mage::getSingleton('core/resource')->getTableName('table_name'); $write = Mage::getSingleton('core/resource')->getConnection('core_write'); $write->insertMultiple($table,$rows); $rows是我在2D数组中插入的数据,我有一个主键'enti
$table = Mage::getSingleton('core/resource')->getTableName('table_name');
$write = Mage::getSingleton('core/resource')->getConnection('core_write');
$write->insertMultiple($table,$rows);
$rows
是我在2D数组中插入的数据,我有一个主键'entity\u id'
和另一列order\u id
,它们具有唯一约束
在插入之前,我想检查表中是否存在订单id,如果有一行具有订单id
,则更新其他wise insert
我发现insertMultiple
,如果插入重复的order\u id
,则会引发错误。如何基于表中的唯一约束列进行插入或更新。谢谢
编辑:
我需要一些像这样的想法:
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
查看一下
Varien\u Db\u适配器\u Pdo\u Mysql::insertOnDuplicate()
:
您必须分别插入每一行,但可以定义如何处理重复键。我想在您的例子中,您需要更新行,所以您只需要将
$table
和$data
作为参数。它会抛出哪个错误?我在控制台中尝试过,如果我为具有唯一约束的列插入具有相同值的行,它就会抛出错误1062(23000):重复输入'uniq\u key'的'naveen1'。
/**
* Inserts a table row with specified data.
*
* @param mixed $table The table to insert data into.
* @param array $data Column-value pairs or array of column-value pairs.
* @param array $fields update fields pairs or values
* @return int The number of affected rows.
* @throws Zend_Db_Exception
*/
public function insertOnDuplicate($table, array $data, array $fields = array())