ID:               49344
 Comment by:       philipp at servicemail24 dot de
 Reported By:      rockyjl at gmai dot com
 Status:           No Feedback
 Bug Type:         PDO related
 Operating System: win2003 X64
 PHP Version:      5.2.11RC1
 Assigned To:      felipe
 New Comment:

The same error occurs using Ubuntu 0910 with Zend Framework:

    require_once('Zend/Db.php');

    $db = Zend_Db::factory('Pdo_Mssql', array(
      'host'     => 'sqlsrv',
      'username' => 'php',
      'password' => 'secret',
      'dbname'   => 'myDatabase',
      'pdoType'  => 'dblib'
    ));
    $result = $db->fetchAll(SELECT * FROM MyTable");
    var_dump($result);


Zend_Db_Adapter_Exception: SQLSTATE[] (null) (severity 0) in
/usr/share/php/libzend-framework-php/Zend/Db/Adapter/Pdo/Abstract.php on
line 144


Previous Comments:
------------------------------------------------------------------------

[2009-09-23 04:20:01] Rockyjl at gmail dot com

My Modification:

static int pdo_dblib_handle_factory(pdo_dbh_t *dbh, zval
*driver_options TSRMLS_DC)
{
        pdo_dblib_db_handle *H;
        int i, ret = 0;
        char *location = " L=";
        struct pdo_data_src_parser vars[] = {
                { "charset",    NULL,   0 },
                { "appname",    "PHP " PDO_DBLIB_FLAVOUR,       0 },
                { "host",               "127.0.0.1", 0 },
                { "dbname",             NULL,   0 },
                { "secure",             NULL,   0 }, /* DBSETLSECURE */
                /* TODO: DBSETLVERSION ? */
        };

        php_pdo_parse_data_source(dbh->data_source, dbh->data_source_len,
vars, 5);

        H = pecalloc(1, sizeof(*H), dbh->is_persistent);
        H->login = dblogin();
        H->err.sqlstate = dbh->error_code;

        if (!H->login) {
                strcat(location, "login");
                goto cleanup;
        }

        if (dbh->username) {
                DBSETLUSER(H->login, dbh->username);
        }
        if (dbh->password) {
                DBSETLPWD(H->login, dbh->password);
        }
        
#if !PHP_DBLIB_IS_MSSQL
        if (vars[0].optval) {
                DBSETLCHARSET(H->login, vars[0].optval);
        }
#endif

        DBSETLAPP(H->login, vars[1].optval);

#if PHP_DBLIB_IS_MSSQL
        dbprocerrhandle(H->login, (EHANDLEFUNC) error_handler);
        dbprocmsghandle(H->login, (MHANDLEFUNC) msg_handler);
#endif

        H->link = dbopen(H->login, vars[2].optval);

        if (H->link == NULL) {
                strcat(location, "link");
                goto cleanup;
        }

        /* dblib do not return more than this length from text/image */
        DBSETOPT(H->link, DBTEXTLIMIT, "2147483647");
        
        /* limit text/image from network */
        DBSETOPT(H->link, DBTEXTSIZE, "2147483647");

        if (vars[3].optval && FAIL == dbuse(H->link, vars[3].optval)) {
                strcat(location, "optval");
                goto cleanup;
        }

        ret = 1;
        dbh->max_escaped_char_length = 2;
        dbh->alloc_own_columns = 1;

cleanup:
        for (i = 0; i < sizeof(vars)/sizeof(vars[0]); i++) {
                if (vars[i].freeme) {
                        efree(vars[i].optval);
                }
        }

        dbh->methods = &dblib_methods;
        dbh->driver_data = H;

        if (!ret) {
                zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC,
                        "SQLSTATE[%s] %s (severity %d) %s",  //I want to 
findout the bug
location !
                        DBLIB_G(err).sqlstate,
                        DBLIB_G(err).dberrstr,
                        DBLIB_G(err).severity,
                        location);
        }

        return ret;
}

The PDO MSSQL work is correct, the bug never happen and never throws
any PDOException after Complie php_pdo_mssql.dll ...

I think my modification STOP all PDOException throw ...

Anyone can tell me what is the problem ?

------------------------------------------------------------------------

[2009-09-17 01:00:02] php-bugs at lists dot php dot net

No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

------------------------------------------------------------------------

[2009-09-10 15:38:07] Rockyjl at gmail dot com

apache 2.2.13 + PHP 5.2 (5.2.11RC3-dev) VC6 x86 Thread Safe
(2009-Sep-10 12:00:00)

often happen error:

[2009-09-10 23:30:10]
127.0.0.1

ApacheBench/2.3
SQLSTATE[] (null) (severity 0)

----------------

This patch cannot work ???!!!

------------------------------------------------------------------------

[2009-09-10 06:07:50] Rockyjl at gmail dot com

PHP 5.3 (5.3.2-dev) VC6 x86 Thread Safe (2009-Sep-10 06:00:00)

http://windows.php.net/downloads/snaps/php-5.3-win32-VC6-x86-latest.zip

the bug happen too ....

------------------------------------------------------------------------

[2009-09-10 01:20:42] s...@php.net

Automatic comment from SVN on behalf of felipe
Revision: http://svn.php.net/viewvc/?view=revision&revision=288215
Log: - Possible fix for bug #49344 on Windows (pdo_mssql fails to
connect,throws PDOException SQLSTATE[] (null) (severity 0))

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/49344

-- 
Edit this bug report at http://bugs.php.net/?id=49344&edit=1

Reply via email to