Joined: 03 Aug 2007 Posts: 256 Location: A'dam/Diemen, The Netherlands
Posted: Sun Jun 07, 2009 8:24 pm Post subject: [solution] Inserting data, ignoring any key conflicts
How to insert data, but you are not sure if the data exists, but dont' want to see a mysql error while inserting?
This is really handy when inserting XML / RSS feeds !
There are two solutions:
Solution1 :
Code:
$sql = 'INSERT INTO '.TABLE_NAME .' ( key1, key2 ) VALUES ( val1, val2 ) ON DUPLICATE KEY UPDATE fetched=fetched+1';
This will insert the data if there is no key conflict.
If there is a key conflict ( existing key = key you want to insert ), no error will be given and NO data will be updated except for the row called "fetched" which has a counter and will increase with the count of 1;
( fetched NULL allowed, DEFAULT = 0 )
This will insert the data if there is no key conflict.
If there is a key conflict ( existing key = key you want to insert ), no error will be given and NO data will be updated.
Solution2b :
You can even do cool things like this, if you don't care if the insert is carried out right away:
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum