Bug #14354 Updated: sybase_query returns 1 regardless of delete success
ID: 14354
Updated by: derick
Reported By: mheumann@sei.cl
Old Status: Bogus
Status: Open
Bug Type: Sybase (dblib) related
Operating System: Linux Mandrake 8
PHP Version: 4.0.6
New Comment:
oh, ok, then it is not bogus.
Previous Comments:
------------------------------------------------------------------------
[2001-12-12 06:24:21] mheumann@sei.cl
I'm not sure if I can agree with you on that. If I don't use the @ sign, sybase_query
displays a warning of the type
Warning: Sybase message: Children still exist in 'table1'. Cannot delete parent
'table2'. (severity 16) in /path/to/my/script.php on line 1432
Doesn't that mean that sybase_query didn't return ok?
Besides, according to the documentation, the function sybase_affected_rows is only implemented for
the ct library, not dblib. Unfortunately, we haven't been able to get sybase-ct to work for us,
even though we tried all the hints we could get.
------------------------------------------------------------------------
[2001-12-11 13:58:59] derick@php.net
Actually, this is not a bug. The query still executes ok, but the result is different then you want.
You can check with the sybase_affected_rows function if it is deleted or not:
www.php.net/sybase_affected_rows
Derick
------------------------------------------------------------------------
[2001-12-11 07:36:16] mheumann@sei.cl
Hello? Anybody home? I kinda need this problem to be solved, please.
------------------------------------------------------------------------
[2001-12-05 18:53:13] mheumann@sei.cl
When trying to delete a record that Sybase will not allow to be deleted because of referential
integrity constraints, sybase_query returns 1. When the record can be deleted successfully, the
return code is also 1.
Example:
// Delete record with referential integrity constraint
$strSQL = "delete from MyTable where MyId=3";
$iResult = sybase_query($strSQL, $iLink );
echo "Query Result: $iResult"; // Displays 1
// Delete record without referential integrity constraint
$strSQL = "delete from MyTable where MyId=4";
$iResult = sybase_query($strSQL, $iLink );
echo "Query Result: $iResult"; // Displays 1, too
We use Sybase ASE 11.9.2 on a Linux Mandrake 8 Box.
We have tried several times to run sybase-ct instead of the dblib, but could never make it work.
Our current configure line:
./configure \
--with-apxs=/usr/sbin/apxs \
--with-pear \
--with-gd=yes \
--with-tiff-dir=/usr/local \
--with-png-dir=/usr/local \
--with-jpeg-dir=/usr/local \
--with-ttf=/usr/src/freetype-1.3.1 \
--with-zlib \
--with-xml \
--with-ftp \
--with-mcal=../libmcal \
--with-imap=/usr/local \
--with-sybase=/opt/sybase-11.9.2 \
--with-mysql=/usr \
--with-mcrypt=/usr/local \
--with-mhash \
--with-pdflib \
--with-zlib-dir=/usr/local \
--with-fdftk=../fdftk \
--with-config-file-path=/etc/httpd/conf \
--enable-versioning \
--enable-track-vars
We use both PHP3 and PHP4 as apache modules; it's a test server, we need it that way.
Please contact me asap if you need more information.
Michael.
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=14354&edit=1
Thread (9 messages)