INSERT INTO expenditures (`order_number`, `description`, `domain`, `price`, `billing_cycle`, `start_date`, `due_date`) VALUES ('49008','','','','','2006-07-26','2006-09-26') ON DUPLICATE KEY UPDATE `start_date`='2006-07-26',`due_date`='2006-09-26' That particular order_number exists, so instead of updating that order number, it just reports that zero rows were updated HERE IS SHOW CREATE TABLE EXPENDITURES (above sql was just a snippet to make it easier to read) CREATE TABLE `expenditures` (\n `order_number` varchar(16) collate latin1_general_ci NOT NULL,\n `description` varchar(255) collate latin1_general_ci NOT NULL,\n `domain` varchar(16) collate latin1_general_ci default NULL,\n `price` double NOT NULL,\n `billing_cycle` varchar(16) collate latin1_general_ci NOT NULL,\n `start_date` date NOT NULL,\n `due_date` date NOT NULL,\n PRIMARY KEY (`order_number`),\n KEY `domain` (`domain`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci