Background: I'm converting a webapp from Visual FoxPro as a backend to
MySQL... However one part of our app (a system status checker) is
common code between the versions.

I've got the following function... In English (in case it's not
apparent), if the version of the app is 2.0 or higher, then use MySQL
functions, otherwise use the ODBTP function to connect to VFP.

function my_fetch_array($result)
        global $Version;
                { $Ret = mysql_fetch_array($result); if(!$Ret) { } else { 
return $Ret; } }
        else    { $Ret = odbtp_fetch_array($result); if(!$Ret) { } else { 
return $Ret; } }

This feels like a hack but works perfectly. Data is returned and all
is right with the world. Until I added in extra "error reporting".
When I change the if(!$Ret) portion as such...

        if(!$Ret) { die("myError".mysql_error()); } else { return $Ret; }

It ALWAYS dies... and I see "myError" on the screen... If I change it
like such...

        if(!$Ret) { } else { echo "notError"; return $Ret; }

I always see the "notError" on the screen and $Ret gets returned.

WHY does adding the die() inside the { } change the way the if is evaluated?

By the way I've tested this on 4.4.x on OSX and Windows, and on 5.2.5
on Windows...



PHP General Mailing List (
To unsubscribe, visit:

Reply via email to