Brian Dunning wrote:
I have a table where I want to update each record with today's date as it's hit, or add the record if it's not in there:

+------+-----------------+------------+
|  id  |  creation_date  |  last_hit  |
+------+-----------------+------------+

I'm trying to do this with a minimum of hits to the db, so rather than first searching to see if a matching record is in there, I thought I'd just go ahead and update the matching record, check to see if it failed, and if it failed then add a new one, like this:

$id = $_GET['id'];
// Update
$query = "update table set last_hit=NOW() where id='$id'";
$result = mysql_query($query);
// Add
if(the update failed) {
$query = "insert into table (id,creation_date,last_hit) values ('$id',NOW(),NOW())";
  $result = mysql_query($query);
}

What's the fastest way to check if the update failed?

You have a few options as others have pointed out, but I'll post this as an option anyway.


Other db's don't have replace into or the "on duplicate key" option either, so you'd need to do something like this:

$query = "update ..";
$result = mysql_query($query);
if (mysql_affected_rows($result) == 0) {
// do the insert.
}


--
Postgresql & php tutorials
http://www.designmagick.com/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to