在magento中插入或更新

时间:2015-02-19 12:23:19

标签: 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数组的数据,我有一个主键'entity_id'和另一个列order_id,它们具有唯一约束。

在插入之前我想检查表中是否存在order_id,如果有一行order_id,则更新其他明智的插入。

如果我插入重复的insertMultiple,我发现order_id会引发错误。如何根据表中的唯一约束列进行插入或更新。感谢

编辑:

我需要一些想法:

INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;

1 个答案:

答案 0 :(得分:1)

查看Varien_Db_Adapter_Pdo_Mysql::insertOnDuplicate()

/**
 * 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())

您必须单独插入每一行,但您可以定义应如何处理重复键。我认为在你的情况下你想要更新行,所以你需要$table$data作为参数。