#31990 [Opn->Bgs]: dblib.c:303: buffer_add_row: Assertion `row_size <= buf->element_size' failed
| From: | sniper@php.net | Date: | Mon, 18 Apr 2005 13:17:07 +0000 |
| Subject: | #31990 [Opn->Bgs]: dblib.c:303: buffer_add_row: Assertion `row_size <= buf->element_size' failed | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-77786@lists.php.net to get a copy of this message | ||
ID: 31990
Updated by: sniper@php.net
Reported By: tim at datad dot com
-Status: Open
+Status: Bogus
Bug Type: Sybase (dblib) related
Operating System: SuSE 9.2 Pro 2.6.8-24.11-default
PHP Version: 4CVS, 5CVS (2005-02-16)
New Comment:
Eh..how do you expect it to work if you uninstall it??
It's a freetds bug anyway -> bogus.
Previous Comments:
------------------------------------------------------------------------
[2005-02-16 22:36:18] tim at datad dot com
I believe this is a FreeTDS problem.
I uninstalled FreeTDS, but now I can no longer connect at all.
Instead I get:
PHP Warning: sybase_select_db(): Sybase: A link to the server could
not be established in /srv/www/sybasedba/sybasedba.run_sp.php on line
17
PHP Warning: sybase_query(): 0 is not a Sybase link index in
/srv/www/sybasedba/sybasedba.run_sp.php on line 21
PHP Warning: sybase_num_fields(): 0 is not a Sybase result index in
/srv/www/sybasedba/sybasedba.run_sp.php on line 23
PHP Warning: sybase_num_rows(): 0 is not a Sybase result index in
/srv/www/sybasedba/sybasedba.run_sp.php on line 24
PHP Warning: sybase_fetch_row(): 0 is not a Sybase result index in
/srv/www/sybasedba/sybasedba.run_sp.php on line 29
PHP Warning: sybase_close(): 0 is not a Sybase link index in
/srv/www/sybasedba/sybasedba.run_sp.php on line 62
What do I do to connect PHP to Sybase if I do not use FreeTDS?
------------------------------------------------------------------------
[2005-02-16 05:16:00] tim at datad dot com
OK, so...
I downloaded and installed the latest PHP ( 4.3.11-dev ) and it still
exhibits the same behavior.
php: dblib.c:303: buffer_add_row: Assertion `row_size <=
buf->element_size' failed.
Aborted
Incidentally, you cannot configure
--with-sybase
--with-sybase-ct
it has to be one or the other. When I configured --with-ct I got
segfaults, and nothing worked at all. I could not connect or anything
with either through a browser or php-cli.
I used --with-sybase-ct=/opt/sybase/OCS-12_5
So I've configured for --with-sybase=/opt/sybase and now what worked
before is working and it is producing the same error as before when I
try to use a stored procedure.
My latest configure:
./configure \
--enable-shared \
--with-apache2=../httpd-2.0.53 \
--with-module=so \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql \
--with-gnu-ld \
--with-zlib \
--with-sybase=/opt/sybase \
--with-unixODBC \
--with-dbase \
--with-openssl \
--with-gd \
--with-ttf \
--with-curl \
--with-mcrypt
------------------------------------------------------------------------
[2005-02-16 03:18:29] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php4-STABLE-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-STABLE-latest.zip
And why don't you use --with-sybase-ct ?? AFAIK, it's better supported
than the old sybase-db..
------------------------------------------------------------------------
[2005-02-16 02:25:34] tim at datad dot com
Description:
------------
I get the following error when I run any stored procedure. The script
works fine if you use SQL statements, but sp's die.
php: dblib.c:303: buffer_add_row: Assertion `row_size <=
buf->element_size' failed.
Aborted
My PHP Configuration:
./configure \
--with-apache2=../httpd-2.0.53 \
--enable-track-vars \
--enable-magic-quotes \
--enable-discard-path \
--enable-force-cgi-redirect \
--enable-shared \
--enable-sigchild \
--enable-sockets=shared \
--enable-mailparse \
--with-module=so \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql \
--with-gnu-ld \
--with-zlib \
--with-sybase \
--with-tdsver=7.0 \
--with-unixODBC \
--with-dbase \
--with-openssl \
--with-gd \
--with-ttf \
--with-curl \
--with-mcrypt
Reproduce code:
---------------
<?php
$servername = "my-server-here" ;
$portnumber = "5000" ;
$username = "sa" ;
$password = "" ;
$database = "master" ;
$db = sybase_connect("$servername:$portnumber",
"$username", "$password");
sybase_select_db ( "$database" );
$q = sybase_query("exec sp_server_info", $db);
# $q = sybase_query("${database}..sp_help", $db);
# $q = sybase_query("select * from sysobjects", $db);
$syb_num_fields = sybase_num_fields( $q ) ;
$syb_num_rows = sybase_num_rows( $q ) ;
$row_cnt = 0 ;
$field_cnt = 0 ;
while($row = sybase_fetch_row($q))
{
if ( $row_cnt == 0 )
{
for ( $f=1; $f<=$syb_num_fields;$f++)
{
$info = sybase_fetch_field($q);
print "[$info->name]";
if ( $field_cnt == $syb_num_fields )
{
print "\n" ;
$field_cnt = 0 ;
}
}
print "\n" ;
}
++$row_cnt ;
$field_cnt = 0 ;
while(list($k, $v) = each($row))
{
++$field_cnt;
$datum = NULL ;
$datum = rtrim ( $v ) ;
print "[$datum]" ;
if ( $field_cnt == $syb_num_fields )
{
print "\n" ;
$field_cnt = 0 ;
}
}
}
sybase_close ( $db ) ;
?>
Expected result:
----------------
I expect it to work!
I should see the output of the stored procedure or at least some kind
of explanation as to why it's failing.
Actual result:
--------------
the bug.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=31990&edit=1