[PHP&MySQL] Alle queries uit die thread opvragen

Pagina: 1
Acties:

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 16:37

Snow_King

Konijn is stoer!

Topicstarter
Hallo,

Om een beetje te debuggen wil ik graag alle queries die mijn PHP script naar de SQL server stuur opvragen dmv echo.

Ik wil dan alleen de queries die in die thread (connectie) verstuurd zijn.

Met mysql_thread_id(); kan je je threadid opvragen, maar is het misschien mogelijk om aan de hand van die threadid alle query's op te vragen die ik gestuurd heb?

In de PHP manual kom ik zo geen functies tegen waar het mee mogelijk is en in de MySQL documentatie vind ik ook niets relevants.

Is het überhaupt wel mogelijk met MySQL?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

MySQL kan alle gedane queries zelf loggen naar een logfile. Is dat geen optie?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 16:37

Snow_King

Konijn is stoer!

Topicstarter
Ja, dat ken ik maar..

Er gaan wel meer queries door die bak, dus dan is het weer lastig te onderscheiden wat waar bij hoort.

  • nnomiS
  • Registratie: Oktober 2000
  • Laatst online: 02-04 20:36
uuhm is het geen optie om zelf even een query functie te schrijven die en een echo doet met de query en de query uitvoert ?

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 16:37

Snow_King

Konijn is stoer!

Topicstarter
Tuurlijk is dat een optie, maar echt efficient is het niet.

Je gaat eerst een querie in een var laden om hem vervolgens in de functie mysql_query() te stoppen, dat is zonde van het geheugen.

Verwijderd

Snow_King schreef op dinsdag 14 december 2004 @ 13:46:
Tuurlijk is dat een optie, maar echt efficient is het niet.

Je gaat eerst een querie in een var laden om hem vervolgens in de functie mysql_query() te stoppen, dat is zonde van het geheugen.
Als dat al relevant is zou ik maar eens meer geheugen gaan halen. Waar praat je over? Een query heeft (zeg) 500 karakters. Maak daar 2000 van, of voor mij part 50.000 dan praat je over het ongeloofelijke aantal van 50KB extra geheugen gebruik in die functie! Met 1000 gelijktijdige queries praat je dus over veel minder dan 50MB. Op het moment dat je zulke bezoekers aantallen haalt heb je wel andere zaken om je zorgen over te maken dan die 50MB extra geheugen gebruik.

[ Voor 17% gewijzigd door Verwijderd op 14-12-2004 14:11 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Snow_King schreef op dinsdag 14 december 2004 @ 13:46:
Tuurlijk is dat een optie, maar echt efficient is het niet.

Je gaat eerst een querie in een var laden om hem vervolgens in de functie mysql_query() te stoppen, dat is zonde van het geheugen.
Of maak een fatsoenlijke database-class ipv maar domweg mysql_query functies uit te voeren. Logging kan daar makkelijk een van de opties van zijn.

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 16:37

Snow_King

Konijn is stoer!

Topicstarter
Verwijderd schreef op dinsdag 14 december 2004 @ 14:08:
[...]


Als dat al relevant is zou ik maar eens meer geheugen gaan halen. Waar praat je over? Een query heeft (zeg) 500 karakters. Maak daar 2000 van, of voor mij part 50.000 dan praat je over het ongeloofelijke aantal van 50KB extra geheugen gebruik in die functie! Met 1000 gelijktijdige queries praat je dus over veel minder dan 50MB. Op het moment dat je zulke bezoekers aantallen haalt heb je wel andere zaken om je zorgen over te maken dan die 50MB extra geheugen gebruik.
Ok, tuurlijk, het gaat niet om veel data en dat extra geheugen doet er ook niet toe.

Het ging me alleen om het principe dat je iets niet onnodig in het geheugen moet laden als het misschien ook anders kan,

[ Voor 3% gewijzigd door Snow_King op 14-12-2004 15:03 ]


  • nnomiS
  • Registratie: Oktober 2000
  • Laatst online: 02-04 20:36
Als het alleen voor het debuggen is en je hebt nog geen andere manier gevonden waarop het kan lijkt het mij een overweegbare optie. Ik maak zelf altijd gebruik van een db klasse en dat werkt best prima en handig. Maar ik vind handigheid en flexibiliteit meestal belangrijker dan dat het op en top moet presteren zeker als een project nog in de debug fase is. :)

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 16:37

Snow_King

Konijn is stoer!

Topicstarter
Dat is ook het probleem niet, meer in de zin: "Waarom moeilijk doen als het makkelijk kan?"

Wie weet kon je het zo heel makkelijk opvragen, blijkbaar niet dus,

Verwijderd

Je kunt in je php.ini (tenminste in versie 4.3.8) wel de volgende optie aan zetten:


code:
1
2
3
; Trace mode. When trace_mode is active (=On), warnings for table/index 
; scans and SQL-Erros will be displayed.
mysql.trace_mode = Off


Ik heb het zelf nooit uitgeprobeerd, maar als ik het goed begrijp zou php met deze instelling op On dus de waarschuwingen van MySQL over foutieve SQL moeten weergeven. Hopelijk heb je hier wat aan.
Pagina: 1