Re: Update or add?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux