Toon posts:

[php] mysql niet zelfde bij php 4.1.2 - 4.2.0

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heel raar, ik had een fout in een forumscript (niet zelf gemaakt) na he switchen van 4.1.2 naar 4.2.0. Bleek dat een query wat values op NULL zette die voorheen een waarde hadden.

Dus ik dacht, zal de query wel afhankelijk zijn van php versie (iets met register_globals ofzo).

De querie bleek precies hetzelfde te zijn gebleven.
Nog sterker, gebruik ik libphp4.1.2.so dan werkt de querie in phpMyAdmin prima, maar met libphp4.2.0 geeft ie voor allerlei columns NULL.

de query is:
code:
1
2
3
4
5
6
7
SELECT p.*, a.*, m.* FROM xmb_posts p
LEFT JOIN xmb_members m ON m.username=p.author
LEFT JOIN xmb_attachments a ON a.pid=p.pid
WHERE p.fid='35'
AND p.tid='355'
ORDER BY dateline
LIMIT 0,35

Zou haast moeten liggen aan de mysqlclient lib die gebruikt is bij het compilen van php ofzo? Maar voor zover ik weet zijn die precies hetzelfde.

Oh met /usr/local/mysql/bin/mysql doet de querie het wel weer prima.

Iemand een idee?

  • Grum
  • Registratie: Juni 2001
  • Niet online
php kent meen ik sinds 4.2.x 'NULL' als value ipv ""

Ik kan niet echt opmaken uit je verhaaltje of ie null gebruikt op plekken waar eerst een normale waarde stond of niet :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Het zou nog best wel met register globals te maken kunnen hebben, maar dan hangt het af van de manier hoe phpmyadmin er mee omgaat.

Heb je de nieuwste versie (2.2.5 oid)?
Die heeft, meen ik, ondersteuning voor de $_XX array's.

Verwijderd

Topicstarter
Op donderdag 02 mei 2002 12:36 schreef Grum het volgende:
php kent meen ik sinds 4.2.x 'NULL' als value ipv ""

Ik kan niet echt opmaken uit je verhaaltje of ie null gebruikt op plekken waar eerst een normale waarde stond of niet :)
Mjah daar stond eerst heel fijn een INT.

Verwijderd

Topicstarter
Op donderdag 02 mei 2002 12:38 schreef ACM het volgende:
Het zou nog best wel met register globals te maken kunnen hebben, maar dan hangt het af van de manier hoe phpmyadmin er mee omgaat.

Heb je de nieuwste versie (2.2.5 oid)?
Die heeft, meen ik, ondersteuning voor de $_XX array's.
Ja maar het vreemde is, ik echo in het script de query met beide php-versies vlak voor ik um doe. Identiek. Ik print_r het result meteen na de query. Niet identiek. Alsof de libmysqlclient zich anders gedraagt. Het gebruikt verder geen GET of POST vars enzo.

Verwijderd

Topicstarter
Als het in phpMyAdmin aan register_globals zou liggen zou ie geen query hebben en ook niet kunnen uitvoeren. Nu krijg ik wel een result, maar met een heleboel NULL's waar eerst getallen stonden.

Verwijderd

Topicstarter
Hmm, gefixed.

SELECT
p.*,
m.*,
a.aid, a.filename, a.filetype, a.filesize, a.attachment, a.downloads
FROM xmb_posts AS p
LEFT JOIN xmb_members AS m ON m.username=p.author
LEFT JOIN xmb_attachments AS a ON a.pid=p.pid
WHERE p.fid='8' AND p.tid='358'
ORDER BY p.dateline
LIMIT 0,35

Er komen een aantal dubbele kolomnamen voor in table xml_posts en table xmb_attachments, nl. tid en pid. Blijkbaar worden na een mysql_fetch_array p.tid en p.pid ook NULL als na de join met attachments a.pid en a.tid NULL zijn. Laat ik die a.pid en a.tid weg (door geen a.* te doen) dan is het resultaat gewoon goed.

Of ik hier nu uit moet concluderen dat mysql_fetch_array zich anders gedraagt dan vroeger weet ik niet, maar raar is het wel.
Pagina: 1