> -----Original Message----- > From: evan@exclusivebooks.com [mailto:evan@exclusivebooks.com] > Sent: 18 February 2003 08:26 > > If I remove the '|| die' part from the mysql_query() > statement, it works > fine. This is bizarre, but there it is. > > ie, if I have: > > $result = mysql_query("SELECT * FROM SOME_TABLE"); > > it works. > > If I have: > > $result = mysql_query("SELECT * FROM SOME_TABLE") || die > ("Unable to execute > SQL query"); > > it doesn't work. It gives me: " Supplied argument is not a valid MySQL > result resource" The || and OR operators, although both doing a Boolean or, have different priorities, so: $result = mysql_query(...) or die(...); is the same as ($result = mysql_query(...)) or die(...); whilst $result = mysql_query(...) || die(...); is the same as $result = (mysql_query(...) || die(...)); In the first case, the result of mysql_query() is assigned into $result, and if it returns FALSE the die() is performed. In the second case, the result of applying the || operator to the mysql_query() and the die() is assigned to $result; because PHP uses short-circuit evaluation, the die() is still only executed if mysql_query returns FALSE, but the || operator still returns a simple Boolean to be assigned to $result -- which, if the die() hasn't fired, must be TRUE (which PHP generally prints as 1). QED. Cheers! Mike --------------------------------------------------------------------- Mike Ford, Electronic Information Services Adviser, Learning Support Services, Learning & Information Services, JG125, James Graham Building, Leeds Metropolitan University, Beckett Park, LEEDS, LS6 3QS, United Kingdom Email: m.ford@lmu.ac.uk Tel: +44 113 283 2600 extn 4730 Fax: +44 113 283 3211 -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php