Re: Update or add?

From: Date: Fri, 30 Jun 2006 21:45:30 +0000
Subject: Re: Update or add?
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-239031@lists.php.net to get a copy of this message
Paul Nowosielski wrote:
On Friday 30 June 2006 14:37, 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?
This is from the php.net docs. Return Values For SELECT, SHOW, DESCRIBE or EXPLAIN statements, mysql_query() returns a resource on success, or FALSE on error. For other type of SQL statements, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error. So if($result == 0){ do something; }
No no no no no! Never like that! What you want is this: if($result === false){ do something; } Never use 0 as a placeholder for false, and never use == to compare boolean values. 0 is an integer, false is a boolean. Using === ensures that result is false, and that it is a boolean that is false. It compares the value AND the type. Regards, Adam.

« previous php.general (#239031) next »