ID:               16906
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Open
 Bug Type:         MySQL related
-Operating System: FreeBSD 4.5
+Operating System: FreeBSD
-PHP Version:      4.1.2
+PHP Version:      4.1.2, 4.2.0
 New Comment:

The problem is: _every_ UPDATE query executed from PHP reports this
warning. Data become updated, but execution stops. The same query
executed in plain mysql does the same, but does not report a warning.


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

[2002-04-30 20:12:41] [EMAIL PROTECTED]

This error occured with me, when synching topics in phpBB admin. But my
theory is, that for some MySQL errors, php is unable to get the right
error string and defaults to 'unable to get result'.
The error does show, when you use the mysql client CLI.

Could you test that, by executing the exact query that fails, via the
mysql client CLI?

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

[2002-04-29 11:35:39] [EMAIL PROTECTED]

mysql> CHECK TABLE wpm_tree_en;
+----------------------+-------+----------+----------+
| Table                | Op    | Msg_type | Msg_text |
+----------------------+-------+----------+----------+
| project3.wpm_tree_en | check | status   | OK       |
+----------------------+-------+----------+----------+
1 row in set (0.03 sec)

Everything fine, as i see. I do run phpBB, but i run a completely
different and unrelated test script. I've done myisamchk -r on all
tables.

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

[2002-04-29 11:28:42] [EMAIL PROTECTED]

Just for fun:
on the query that fails, run a CHECK TABLE on the tables involved.

See if you get a 'error 134' from table handler.

Are you by any chance running phpBB-1.4.x?

I've seen this error 'unable to save result set' a few times, while it
is actually the above table handler error in mysql.

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

[2002-04-29 11:01:08] [EMAIL PROTECTED]

This is a follow-up to bug 
http://bugs.php.net/bug.php?id=12029

The problem do exists. I've got plenty of them on my FreeBSD, and never
got a clue how i fixed it.

Now i'm upgrading to php-4.1.2 (with apache 1.3.14), and problem arises
again. Everything was compiled using standard FreeBSD ports Makefile. 

Summary:

Everything works as long as i not include any of mhash, mcrypt and gd2.
Tested on 4.1.2 and 4.2.0.

Here are results of some tests:

1. Plugging in old already compiled libphp4.so (4.0.1 i suppose)
works.

"./configure" \
"--with-apxs=/usr/local/sbin/apxs" \
"--with-config-file-path=/usr/local/etc" \
"--enable-versioning" \
"--with-system-regex" \
"--disable-debug" \
"--enable-track-vars" \
"--disable-pear" \
"--with-gd=/usr/local" \
"--with-zlib" \
"--with-mcrypt=/usr/local" \
"--with-mhash=/usr/local" \
"--with-imap=/usr/local" \
"--with-mysql=/usr/local" \
"--prefix=/usr/local" \
"i386--freebsd4.3" \
"$@"

libphp4.so              1271565

2. Compiling with mysql only:

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \                                         
CXX='c++' \    
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"

works.

libphp4.so              1006173


3. The same, but manually running ./configure:

'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--with-mysql=/usr/local' \
'--without-gd' \
"$@"

! libphp4.so            2598686 (very strange!!!)

works.

4. FreeBSD port make: zlib, mysql, mcrypt, mhash:

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \
CXX='c++' \
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--without-mysql' \
'--with-zlib' \
'--with-mcrypt=/usr/local' \
'--with-mhash=/usr/local' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"

libphp4.so              1054805

DOESN'T WORK.

Let's try and remove some components. zlib, mcrypt, mhash seem to
cause an error. Start from mhash.

5. FreeBSD port make: zlib, mysql, mcrypt:

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \
CXX='c++' \
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--without-mysql' \
'--with-zlib' \
'--with-mcrypt=/usr/local' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"

libphp4.so              1050061

DOESN'T WORK.

Ok, maybe it's mcrypt bug?

6. FreeBSD port make: zlib, mysql, mhash:

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \
CXX='c++' \
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--without-mysql' \
'--with-zlib' \
'--with-mhash=/usr/local' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"

libphp4.so              1028045

DOESN'T WORK.

The only case left is zlib. Let's try:

6. FreeBSD port make: mysql, mhash, mcrypt:

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \
CXX='c++' \
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--without-mysql' \
'--with-mcrypt=/usr/local' \
'--with-mhash=/usr/local' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"

libphp4.so              1036937

DOESN'T WORK.

So. Nothing. Let's try adding one-by-one to working configuration
(mysql only)

7. FreeBSD port make: mysql, zlib (default)

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \
CXX='c++' \
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--without-mysql' \
'--with-zlib' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"

libphp4.so              1024009

works!

So, problem is in mcrypt AND mhash. Very strange. Maybe there is
something with linking in?

8. Just for fun. Manual zlib, mysql, mcrypt, mhash:

'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--with-mysql=/usr/local' \
'--with-zlib' \
'--with-mcrypt=/usr/local' \
'--with-mhash=/usr/local' \
"$@"

libphp4.so              2702054 (much larger...)

still don't work.

9. Lets try working mysql, zlib with IMAP (cclient).

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \
CXX='c++' \
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--without-mysql' \
'--with-zlib' \
'--with-imap=/usr/local' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"

libphp4.so              1097069

works. 

Looks like the problem really lies in mcrypt and mhash.

10. Lets try mysql + mhash?

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \
CXX='c++' \
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--without-mysql' \
'--with-mhash=/usr/local' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"

libphp4.so              1010177

yep. doesn't work.

11. The same should be with mysql + mcrypt, right?

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \
CXX='c++' \
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--without-mysql' \
'--with-mcrypt=/usr/local' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"

libphp4.so              1032193

doesn't work. 

So, maybe the problem is localized. Few more checks

12. FreeBSD port make - php 4.2.0, mysql, zlib, mhash, mcrypt, imap,
gd2 to make sure
it's not a version problem.

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \
CXX='c++' \
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--without-mysql' \
'--with-gd=/usr/local' \
'--enable-gd-native-ttf' \
'--with-freetype-dir=/usr/local' \
'--with-jpeg-dir=/usr/local' \
'--with-png-dir=/usr/local' \
'--with-zlib' \
'--with-mcrypt=/usr/local' \
'--with-mhash=/usr/local' \
'--with-imap=/usr/local' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"

libphp4.so              1203049

doesn't work.

13. FreeBSD port make - php 4.2.0, mysql, zlib, imap, gd2 to make sure
it's mhash AND mcrypt problem.

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \
CXX='c++' \
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--without-mysql' \
'--with-gd=/usr/local' \
'--enable-gd-native-ttf' \
'--with-freetype-dir=/usr/local' \
'--with-jpeg-dir=/usr/local' \
'--with-png-dir=/usr/local' \
'--with-zlib' \
'--with-imap=/usr/local' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"
 
libphp4.so              1173789

cool. doesn't work. gosh, what's wrong? Continue investigations:

14. FreeBSD port make: working (php 4.1.2, mysql, zlib with IMAP
(cclient)) + gd2.

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \
CXX='c++' \
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--without-mysql' \
'--with-gd=/usr/local' \
'--enable-gd-native-ttf' \
'--with-freetype-dir=/usr/local' \
'--with-jpeg-dir=/usr/local' \
'--with-png-dir=/usr/local' \
'--with-zlib' \
'--with-imap=/usr/local' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"

libphp4.so              1164165

doesn't work. gosh, i'm tired. maybe problem lies in gd2 too? 

15. FreeBSD port make: PHP 4.1.2 mysql + gd2 + zlib.

CFLAGS='-O -pipe  -I/usr/local/include' \
CXXFLAGS=' -O -pipe  -I/usr/local/include' \
CC='cc' \
CXX='c++' \
'./configure' \
'--with-apxs=/usr/local/sbin/apxs' \
'--with-config-file-path=/usr/local/etc' \
'--enable-versioning' \
'--with-regex=system' \
'--without-gd' \
'--without-mysql' \
'--with-gd=/usr/local' \
'--enable-gd-native-ttf' \
'--with-freetype-dir=/usr/local' \
'--with-jpeg-dir=/usr/local' \
'--with-png-dir=/usr/local' \
'--with-zlib' \
'--with-mysql=/usr/local' \
'--prefix=/usr/local' \
'i386-portbld-freebsd4.5' \
"$@"

libphp4.so              1087009

doesn't work.



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


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

Reply via email to