[PHP-BUG] Bug #51476 [NEW]: odbc_execute doesn't return proper result

[email protected] ("alexeyp at gmail dot com") Mon, 5 Apr 2010 12:17:35 +0200 (CEST)
Newsgroups php.bugs
Message-ID <[email protected]>
From:             
Operating system: Linux
PHP version:      5.2.13
Package:          ODBC related
Bug Type:         Bug
Bug description:odbc_execute doesn't return proper result

Description:
------------
Result status for odbc_execute() is not correctly returned for CREATE TABLE
statements. Tested with MySQL and PostgreSQL ODBC drivers. Execution of
odbc_execute() for SELECT/UPDATE/INSERT statements doesn't have that
effect.

Testing CREATE TABLE with isql utility from unixODBC correctly returns an
error on second execution (assuming that table didn't exist before).

Test script:
---------------
    $stmt = odbc_prepare($db, "CREATE TABLE x(id int)");
    
    if ($stmt === false) {
        $error = true;
        $resultStr = "Query: $query\nPrepare Error: " .
odbc_errormsg($db);
        echo $resultStr . "\n";
    } else {
        // Executing query (if prepare went fine)
        $result = odbc_execute($stmt, $parameterArray);
        echo $resultStr . "\n";
    }
        
    if (!$result) {
        echo "ODBC Error: " . odbc_error($db) . "\n";
        $resultStr = "Query: $query\nExecute error: " .
odbc_errormsg($db);
        echo $resultStr . "\n";
        $error = true;
    }

Expected result:
----------------
Execution of the test script should create table "x" during the first
execution without reporting an error. The second execution should report an
error.

Actual result:
--------------
Every execution of the script reports an error:

Execute error: [unixODBC]Error while executing the query (non-fatal);
ERROR:  relation "x" already exists

The table "x" is successfully created during the first test script
execution.

-- 
Edit bug report at http://bugs.php.net/bug.php?id=51476&edit=1
-- 
Try a snapshot (PHP 5.2):            http://bugs.php.net/fix.php?id=51476&r=trysnapshot52
Try a snapshot (PHP 5.3):            http://bugs.php.net/fix.php?id=51476&r=trysnapshot53
Try a snapshot (PHP 6.0):            http://bugs.php.net/fix.php?id=51476&r=trysnapshot60
Fixed in SVN:                        http://bugs.php.net/fix.php?id=51476&r=fixed
Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=51476&r=needdocs
Fixed in release:                    http://bugs.php.net/fix.php?id=51476&r=alreadyfixed
Need backtrace:                      http://bugs.php.net/fix.php?id=51476&r=needtrace
Need Reproduce Script:               http://bugs.php.net/fix.php?id=51476&r=needscript
Try newer version:                   http://bugs.php.net/fix.php?id=51476&r=oldversion
Not developer issue:                 http://bugs.php.net/fix.php?id=51476&r=support
Expected behavior:                   http://bugs.php.net/fix.php?id=51476&r=notwrong
Not enough info:                     http://bugs.php.net/fix.php?id=51476&r=notenoughinfo
Submitted twice:                     http://bugs.php.net/fix.php?id=51476&r=submittedtwice
register_globals:                    http://bugs.php.net/fix.php?id=51476&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=51476&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=51476&r=dst
IIS Stability:                       http://bugs.php.net/fix.php?id=51476&r=isapi
Install GNU Sed:                     http://bugs.php.net/fix.php?id=51476&r=gnused
Floating point limitations:          http://bugs.php.net/fix.php?id=51476&r=float
No Zend Extensions:                  http://bugs.php.net/fix.php?id=51476&r=nozend
MySQL Configuration Error:           http://bugs.php.net/fix.php?id=51476&r=mysqlcfg