ID: 49344
Comment by: Rockyjl at gmail dot com
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:
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 ?
Previous Comments:
------------------------------------------------------------------------
[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] [email protected]
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))
------------------------------------------------------------------------
[2009-09-09 09:43:20] Rockyjl at gmail dot com
Pajoye, Thank you so much! This is very important to me !
------------------------------------------------------------------------
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