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