[php] Not a valid MySQL result

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb deze code:

<?php
$datum = date('YmdHis');
$result = mysql_query(" SELECT *
FROM " . DB_PRETABLE . "mails
WHERE dateVerzenden < '" . $datum . "'
AND geconfirmeerd = '1'") or die (mysql_error());

if (mysql_num_rows($result) > 0){

while ($obj = mysql_fetch_object($result)){
?>

Nu krijg ik op de while-regel deze error:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/httpd/vhosts/XXXXXXX/httpdocs/XXXXXX.php on line 28

Wat kan er mis zijn met deze select? Zit toch niks raars in die query? En als er iets raars in die query zit, zou ik er een mysql_error() moeten zien, maar die komt er ook niet...

Acties:
  • 0 Henk 'm!

  • Rigi
  • Registratie: September 2001
  • Laatst online: 30-11-2018
Heb je die query al 's geprint? misschien ergens onverwachtte waardes van DB_PRETABLE of $datum?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Rigi schreef op woensdag 25 oktober 2006 @ 20:44:
Heb je die query al 's geprint? misschien ergens onverwachtte waardes van DB_PRETABLE of $datum?
Ja, ik heb hem wel eens geprint en daar is niks raars aan te zien. DB_PRETABLE is een constant die een waarde heeft en zoals je ziet is $datum correct neergezet.

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Zeker dat die geconfirmeerd als een '1' moet en niet als een 1 ( VARCHAR <> INT )

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Snakiej schreef op woensdag 25 oktober 2006 @ 20:46:
Zeker dat die geconfirmeerd als een '1' moet en niet als een 1 ( VARCHAR <> INT )
De kolom is een VARCHAR en daarnaast zou PHP dit goed moeten kunnen doen, toch? Type conversie lukt meestal aardig.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een query geprint en deze klopt:

SELECT *
FROM shop_mails
WHERE dateVerzenden < '20061025205418'
AND geconfirmeerd = '1'

shop_ is inderdaad de prefix.

Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 19:50

Gonadan

Admin Beeld & Geluid, Harde Waren
Hij komt voorbij de 'or die()' dus de query moet goed gaan.
Maar dan komt hij ook voorbij de 'mysql_num_rows' en geeft dan bij de fetch opdracht een foutmelding.
Volgens mij moet een 'foute recordset' al onderuit gaan bij de 'mysql_num_rows' dus vandaar mijn vraag: Mist er nog wat code?
Ik heb namelijk het gevoel dat er nog wat tussendoor gebeurt. :)

[ Voor 9% gewijzigd door Gonadan op 25-10-2006 20:58 ]

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik snap je verbazing, maar ik kan er echt niks meer van maken dan dit:

Afbeeldingslocatie: http://www.bm-media.nl/files/tweakers.gif

Die echo "<!-- $query -->"; heb ik er net tussen geplakt.

Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 19:01

Reinier

\o/

En wat gebeurt er als je de query (die je dus echo't) in bijv. phpmyadmin uitvoert?

Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 19:50

Gonadan

Admin Beeld & Geluid, Harde Waren
Kan je die query niet handmatig uitvoeren? PHPmyAdmin ofzo? :)

edit:
Heej Renier :w
:+


Edit2:
Ik zie in die code dat er achter datum geen ' komt te staan, maar die heb je wel in je query, waar komt die vandaan? :)
Of is je plaatje gewoon te smal? ;)

[ Voor 70% gewijzigd door Gonadan op 25-10-2006 21:07 ]

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • ID-College
  • Registratie: November 2003
  • Laatst online: 15:55
Als ik die screen bekijk mis je een ' achter $datum in je sql query of is dit al verbeterd?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Afbeeldingslocatie: http://www.bm-media.nl/files/tweakers-2.gif

Weliswaar zonder resultaten, maar dat klopt wel.

Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 19:50

Gonadan

Admin Beeld & Geluid, Harde Waren
Verwijderd schreef op woensdag 25 oktober 2006 @ 21:07:
Weliswaar zonder resultaten, maar dat klopt wel.
Um, even tussendoor, heb je wel een verbinding naar je database?
Je geeft geen connectie op in je mysql_query, nou is dat niet echt nodig maar ik zie hem ook nergens. :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 19:01

Reinier

\o/

Geen resultaten? Dan kan hij toch niet bij die while komen?

Is het niet per ongeluk toch op een andere regel? Je include immers ook het een en ander en ik zie sowieso meerderen keren mysql_fetch_object( $result ) voorbij komen ;)

[ Voor 59% gewijzigd door Reinier op 25-10-2006 21:12 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wat de code doet is bepalen welke emails nog verstuurd moeten worden. Als er nog emails zijn, worden deze verstuurd en wordt de desbetreffende regel uit de database geknikkerd. Vandaar dat hij NU geen resultaten weer geeft, omdat de mailings al verzonden zijn.

Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 19:50

Gonadan

Admin Beeld & Geluid, Harde Waren
Verwijderd schreef op woensdag 25 oktober 2006 @ 21:12:
Wat de code doet is bepalen welke emails nog verstuurd moeten worden. Als er nog emails zijn, worden deze verstuurd en wordt de desbetreffende regel uit de database geknikkerd. Vandaar dat hij NU geen resultaten weer geeft, omdat de mailings al verzonden zijn.
Je kan trouwens die
PHP:
1
if (mysql_num_rows($result) > 0 )

er wel tussenuit laten.
De while start niet als hij geen fetch kan doen, dus die check is overbodig. :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 19:01

Reinier

\o/

Verwijderd schreef op woensdag 25 oktober 2006 @ 21:12:
Wat de code doet is bepalen welke emails nog verstuurd moeten worden. Als er nog emails zijn, worden deze verstuurd en wordt de desbetreffende regel uit de database geknikkerd. Vandaar dat hij NU geen resultaten weer geeft, omdat de mailings al verzonden zijn.
Ja, prima, maar dan is mysql_num_rows toch 0 en voert hij die while niet uit. Dus weet je zeker dat het díe regel is die je warning oplevert? Echo eens iets willekeurigs op die plek?

[ Voor 50% gewijzigd door Reinier op 25-10-2006 21:17 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ben ik met je eens, maar je wilt niet weten wat voor rare dingen ik al heb gedaan, op zoek naar een oplossing van mijn probleem. Op een gegeven moment ga je aan alles twijfelen 8)7 ;)

Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 19:50

Gonadan

Admin Beeld & Geluid, Harde Waren
Verwijderd schreef op woensdag 25 oktober 2006 @ 21:16:
Ben ik met je eens, maar je wilt niet weten wat voor rare dingen ik al heb gedaan, op zoek naar een oplossing van mijn probleem. Op een gegeven moment ga je aan alles twijfelen 8)7 ;)
Hehe, dat ken ik. ;)
Maar je hebt nog geen antwoord gegeven.
Wat als je nou eens een simpele 'SELECT * FROM shop_mails' doet en kijkt of die werkt op dezelfde plek in je script, dan gooi je gewoon een 'die' voor de while lus dus zal hij niet als een maf gaan mailen maar kan je wel controleren of het allemaal werkt zoals het hoort. ;)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Had ik ook al geprobeerd :S Maar uiteraard bedankt voor het voorstel...

Ik vermoed dat jullie me ook niet echt verder kunnen helpen, omdat de code prima is. Wat er dan wel aan de hand is? Het meest rare vind ik dat hij wel voorbeeld mysql_num_rows() komt, maar gaat stuiteren bij de mysql_fetch_object() terwijl voor allebei een geldige MySQL result nodig is....

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Edit2:
Ik zie in die code dat er achter datum geen ' komt te staan, maar die heb je wel in je query, waar komt die vandaan? :)
Of is je plaatje gewoon te smal? ;)
Zelfs een plaatje fatsoenlijk uitsnijden lukt me vanavond al niet meer :) Die ' staat er zeker wel in.

Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 19:50

Gonadan

Admin Beeld & Geluid, Harde Waren
Nou nou, we zullen er toch wel uitkomen? Niet zo negatief. ;)

Iets geks dan maar:
Probeer eens een mysql_fetch_assoc ipv mysql_fetch_object.
Zou geen kont uit mogen maken.
Maar ik zie het zo ook even niet :P

En wat geeft 'echo $result;' ?

[ Voor 26% gewijzigd door Gonadan op 25-10-2006 21:29 ]

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • momania
  • Registratie: Mei 2000
  • Laatst online: 15:37

momania

iPhone 30! Bam!

Verwijderd schreef op woensdag 25 oktober 2006 @ 21:24:
[...]


Zelfs een plaatje fatsoenlijk uitsnijden lukt me vanavond al niet meer :) Die ' staat er zeker wel in.
Uhm we hebben hier code tags ;)
[code=php]<hier je code>[/code]

Neem je whisky mee, is het te weinig... *zucht*


Acties:
  • 0 Henk 'm!

Verwijderd

Van deze site:
1e hit op google...
This is a very general error. Most of the time it just means that you could not connect to the database (for whatever reason) and thus the result set you tried to fetch was not a "valid MySQL result resource". You should try first to get a more descriptive error message. For this purpose, you must edit the "case" lines in the sql_layer.php file.
Weet je dus zeker dat je uberhaupt een query kan uitvoeren...? Probeer eens zonder de WHERE-clause, dus wel met records.

Acties:
  • 0 Henk 'm!

  • maurad3r
  • Registratie: Oktober 2004
  • Laatst online: 18-09 12:34
Overschrijf je result niet toevallig binnen je while loop? Dat zou in elk geval verklaren waarom hij voorbij num_rows komt maar vastloopt op de fetch_obj!

[ Voor 45% gewijzigd door maurad3r op 25-10-2006 21:31 ]


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 19:50

Gonadan

Admin Beeld & Geluid, Harde Waren
maurad3r schreef op woensdag 25 oktober 2006 @ 21:30:
Overschrijf je result niet toevallig binnen je while loop? Dat zou in elk geval verklaren waarom hij voorbij num_rows komt maar vastloopt op de fetch_obj!
Dat is een hele goede, post je hele while loop eens? :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Wat zegt mysql_error()

Systeem | Strava


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Dat is het punt juist mensen. de query wordt keurig uitgevoerd. Er staat al een die met eem mysql error en deze komt niet in de uitvoor terecht. Zelfs de mysql fetch rows gaat goed. Er is hier iig iets vreemds aan de hand.

Het allervreemdste vind ik nog dat de query duidelijk 0 resultaten oplevert in phpmyadmin, maar dat php tijdens het uitvoeren toch bij die fetch kan komen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 19:01

Reinier

\o/

Wat ik al eerder vroeg: weet je nou absoluut zeker dat het gaat om regel 29 in je screenshot en niet om een eerdere regel? Want ook daar staat mysql_fetch_object.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

mwah, aangenomen dat de echo query er bij gezet is komt het wel redelijk overeen met de orginele foutmelding in de startpost (daar staat regel 28). Ik denk toch dat ik met maurad3r mee moet. Dat lijkt me de enige plausibele verklaring. Enkel kijkent naar de code die er nu staat kan ik niks fouts vinden.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
maurad3r schreef op woensdag 25 oktober 2006 @ 21:30:
Overschrijf je result niet toevallig binnen je while loop? Dat zou in elk geval verklaren waarom hij voorbij num_rows komt maar vastloopt op de fetch_obj!
Ja, maurad3r gaat voor de magnetron! Ik ging er steeds van uit dat gelijk de eerste keer dat hij in de while-loop knalde er iets mis ging, maar inderdaad - het gebeurde pas bij de tweede keer toen er al iets overschreven was. Bedankt mensen!
Pagina: 1