[PHP/MySQL]update laat php crashen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Superboer12
  • Registratie: Februari 2004
  • Laatst online: 20:59
Een tijdje geleden heb ik een site afgemaakt. De site draait volledig op PHP/MySQL. Met een web based admin gedeelte kun je items toevoegen wijzigen etc.
Nu is ie in gebruik, maar ik heb nu iets raars gevonden.

De homepage laat een lijstje zien van de laatste 10 items, datum, titel en eerste 250 tekens.
Toevoegen van nieuwe items (ook nieuws) gaat goed. Het wijzigen ook, maar niet bij de nieuwsitems.
Als je een nieuwsitem wijzigt, dan crasht de homepage. PHP max execution time wordt overschreden (60s).

De query die wordt uitgevoerd bij het updaten van een nieuws item is vrij simpel:
PHP:
1
argo_query("UPDATE news SET date=$date, cat=\"$cat_db\", title=\"$title\", content=\"$content_db\", time=\"$time\" WHERE ID=$ID");

De code op de homepage is een simpele SELECT query:
PHP:
1
$results_item = argo_query("SELECT date, title, content FROM news WHERE ID = $item_ID");

Dit is de enigste query die 'content' uit 'news' uitleest.

Als het fout gegaan is, is het simpel op te lossen. Ik start MySQL control center op en open 'content' bij het juiste ID. Dan wijzig ik niks, maar klik domweg op apply. Dan wordt dezelfde inhoud dus weggeschreven naar de database. Daarna werkt het weer fijn en is de homepage binnen een fractie van een seconde geladen.

Waar kan dit in hemelsnaam aan liggen?

Infinitus est numerus stultorum


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Druk de query die uitgevoerd wordt eens af in plaats van hem uit te voeren. En wat doet de functie argo_query eigenlijk?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

test de query gewoon eerst mysql console krijg je vanzelf foutmelding terug.
Maar ik denk dat je de velden even enkelvuodig moet quote.

'date' = $date

Acties:
  • 0 Henk 'm!

  • Redshark
  • Registratie: Mei 2002
  • Laatst online: 20-09 13:25
Je werkt niet helemaal consistent lijkt het, daarnaast open je je phptags met <? ipv <?php
Probeer anders dit eens:
PHP:
1
2
3
<?php
argo_query("UPDATE news SET date=$date, cat=$cat_db, title=$title, content=$content_db, time=$time WHERE ID=$ID");
?>


of deze:
PHP:
1
2
3
<?php
argo_query("UPDATE news SET date= now(), cat=$cat_db, title=$title, content=$content_db, time=$time WHERE ID=$ID");
?>

Acties:
  • 0 Henk 'm!

  • Superboer12
  • Registratie: Februari 2004
  • Laatst online: 20:59
als ik de query afdruk dan ziet het gewoon goed uit.
ik krijg ook geen foutmelding. en als ik iets verander dan kan ik dat ook zien met mysqlcc, alles schijnt dus goed te gaan....

De dubbele " kan ik inderdaad vervangen met een enkele ', maar het geeft geen verandering.

de funtie argo_query voert de query uit en geeft eventueel een foutmelding en mailt meteen de details naar mij. het is dus een vervanging/uitbreiding van mysql_query.

de open en close tags heb ik er niet in gezet [ code=php] geeft dat effect op het forum.
de datum die erin gezet wordt is niet de huidige datum, daardoor kan ik dat niet vervangen door now()

Infinitus est numerus stultorum