Justtechjobs.com Find a programming school near you






Online Campus Both


php-developer-list | 2001122

[PHP-DEV] Bug #11490 Updated: mssql_connect() broken, mssql_pconnect() fixes it From: lobbin <email protected>
Date: 12/18/01

ID: 11490
Updated by: lobbin
Reported By: mlathoud <email protected>
Old Status: Open
Status: Feedback
Bug Type: Sybase-ct (ctlib) related
Operating System: Debian GNU/Linux i686
PHP Version: 4.0.5
New Comment:

Can this be reproduced with a later version of freetds and/or?

R.

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

[2001-06-14 14:03:03] mlathoud <email protected>

Update: with a bigger query like the following (returning 2K+ rows with sqsl based on freetds), I always get
1 is not a valid Sybase-Link resource in <b>test.php</b> on line <b>9</b> when mssql_query()ing, using pconnect() or connect(). Hence, the bug is definately not in freetds, but in sybase_ct.
Side note, I am using php4.0.4pl1 with sybase/freetds (not _ct) on another debian (2.2, apache/php self-compiled)machine and it works just fine.

<?
mssql_pconnect("server","user","pass");
viewdb("SELECT
RegNumber,ISCorporate,Customers.FirstName+Customers.MiddleName+Customers.LastName,Customers.Address,Customers.City,
Customers.State,Customers.ZIP,Customers.HomePhone,Customers.Fax,NickName
from Customers INNER JOIN SalesPersons on Customers.SalesPersonID=Salespersons.SalesPersonID");

function viewdb($query) {
        $r=mssql_query($query);
        if (!$r) {
                print "No results";
                exit;
        };
        print "<p align=center><table border=1>";
        while ($res=mssql_fetch_object($r)) {
                print "<tr>\n";
                if (!isset($fields)) {
                        foreach (array_keys(get_object_vars($res)) as
$n=>$val) {
                                if (!($n%2)) continue;
                                $fields[]=$val;
                        print "<th>$val";
                        };
                        print "<tr>\n";
                };
                foreach ($fields as $field) {
                        print "<td>".$res->$field."\n";
                };
        };
        print "</table>";
};

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

[2001-06-14 13:03:17] sniper <email protected>

Add shortest possible example script which can be used
to reproduce this into this report.

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

[2001-06-14 11:04:06] mlathoud <email protected>

I am using Debian unstable, with the following relevant packages:
freetds0 0.51-4
php4 and php4-sybase 4.0.5-2
It's in fact using extension=sybase_ct.so.

When connecting to a MSSQL7 server, if I use mssql_connect(), only the first row of a query can be fetched, then I get "2 is not a valid Sybase result resource".
Simply switching to mssql_pconnect() fixes it (even when used with the standalone php4 binary).

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

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

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: php-dev-unsubscribe <email protected>
For additional commands, e-mail: php-dev-help <email protected>
To contact the list administrators, e-mail: php-list-admin <email protected>