From:             red at ixney dot net
Operating system: Win XP Pro
PHP version:      4.3.2
PHP Bug Type:     MySQL related
Bug description:  (or) and (||) not the same

Description:
------------
I always thought '||' and 'or' was the same.
Combined with a mysql_query() however, they are not.

These lines are the same:
mysql_query("$var") or die("help!");
mysql_query("$var") || die("help!");
where $var is a DROP, INSERT or CREATE query, but they are *not* the same
if $var is a SELECT query; the returned value will not be a 'Resource ID'
in the latter line.

Reproduce code:
---------------
mysql_query("DROP TABLE IF EXISTS foobar") || die('Cannot drop table'); 
mysql_query("CREATE TABLE IF NOT EXISTS foobar (foo INT NOT NULL
AUTO_INCREMENT, bar TINYINT(1), PRIMARY KEY (foo))") || die('Cannot make
table'); 

// Let's insert some random stuff
mysql_query("INSERT INTO foobar (bar) VALUES (0)") || die('Cannot add
values 1'); 
mysql_query("INSERT INTO foobar (bar) VALUES (1)") || die('Cannot add
values 2'); 
mysql_query("INSERT INTO foobar (bar) VALUES (0)") or die('Cannot add
values 3'); 
mysql_query("INSERT INTO foobar (bar) VALUES (1)") or die('Cannot add
values 4'); 

$handle1 = mysql_query("SELECT * FROM foobar WHERE 1") || die('Cannot
select'); 
$handle2 = mysql_query("SELECT * FROM foobar WHERE 1") or die('Cannot
select'); 

echo '$handle1 is '.$handle1.'<br><br>';
echo '$handle2 is '.$handle2.'<br><br>';

Expected result:
----------------
$handle1 is Resource id #2
$handle2 is Resource id #3

Actual result:
--------------
$handle1 is 1
$handle2 is Resource id #3

-- 
Edit bug report at http://bugs.php.net/?id=26734&edit=1
-- 
Try a CVS snapshot (php4):  http://bugs.php.net/fix.php?id=26734&r=trysnapshot4
Try a CVS snapshot (php5):  http://bugs.php.net/fix.php?id=26734&r=trysnapshot5
Fixed in CVS:               http://bugs.php.net/fix.php?id=26734&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=26734&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=26734&r=needtrace
Need Reproduce Script:      http://bugs.php.net/fix.php?id=26734&r=needscript
Try newer version:          http://bugs.php.net/fix.php?id=26734&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=26734&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=26734&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=26734&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=26734&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=26734&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=26734&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=26734&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=26734&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=26734&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=26734&r=float

Reply via email to