Toon posts:

[php+mysql]quote in database veranderen

Pagina: 1
Acties:
  • 53 views sinds 30-01-2008

Verwijderd

Topicstarter
Goeiedag,

Ik heb een database met een veld categorie.
In het veld categorie staat bijvoorbeeld: Pagina's

Wanneer ik dit wil uitlezen gebruik ik
PHP:
1
2
3
4
5
$query = "SELECT * FROM $tabel WHERE categorie='$categorie'";
$resultaat = mysql_query($query);
while ($obj = mysql_fetch_object($resultaat)) {

bla bla bla.....


Ik krijg dan de melding:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource

Ik weet dat dit komt omdat er een ' (quote) in de database staat.

Hoe kan ik ervoor zorgen dat hij een dubbele quote ziet?

Let erop dat ik de naam van de categorie wegschrijf dmv een form.
Daar zou ik ook een check kunnen doen en dan de quote vervangen door /' of door "

Graag hulp, ben al een paar uur hiernaar aan het zoeken

  • simon
  • Registratie: Maart 2002
  • Laatst online: 08-05 22:18
does
$resultaat = mysql_query($query) or die (mysql_error());

|>


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 11:51
Je moet gewoon zorgen dat je $categorie escaped voordat je hem in de query stopt. Nu staat er namelijk:
SELECT * FROM tabel WHERE categorie='pagina's'

Wat een ongeldige query is door de quotes. Om hem correct te krijgen doe je het volgende:
PHP:
1
$query = 'SELECT * FROM '  .$tabel .' WHERE categorie="' .mysql_real_escape_string($categorie) .'"';


____
edit:
Concateneren hoeft niet per se maar vind ik persoonlijk altijd wat netter staan. Je zou als je dat beter bevalt ook gewoon het volgende kunnen doen:
PHP:
1
2
$categorie = mysql_real_escape_string($categorie);
$query = "SELECT * FROM $tabel WHERE categorie='$categorie'";


hmm geen code tags tussen edit-tags

[ Voor 46% gewijzigd door T-MOB op 07-04-2005 20:46 ]

Regeren is vooruitschuiven


Verwijderd

Topicstarter
T-MOB schreef op donderdag 07 april 2005 @ 20:42:
Je moet gewoon zorgen dat je $categorie escaped voordat je hem in de query stopt. Nu staat er namelijk:
SELECT * FROM tabel WHERE categorie='pagina's'

Wat een ongeldige query is door de quotes. Om hem correct te krijgen doe je het volgende:
PHP:
1
$query = 'SELECT * FROM '  .$tabel .' WHERE categorie="' .mysql_real_escape_string($categorie) .'"';


____
edit:
Concateneren hoeft niet per se maar vind ik persoonlijk altijd wat netter staan. Je zou als je dat beter bevalt ook gewoon het volgende kunnen doen:
PHP:
1
2
$categorie = mysql_real_escape_string($categorie);
$query = "SELECT * FROM $tabel WHERE categorie='$categorie'";


hmm geen code tags tussen edit-tags
He, Hartstikke bedankt. Het werkt man top!!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op donderdag 07 april 2005 @ 20:37:
Graag hulp, ben al een paar uur hiernaar aan het zoeken
Sorry? :o Dan ben ik wel een beetje nieuwsgierig naar je zoekquery bij Google, want de eerste hit bij [google=quotes in query php] is al meteen raak. Beter zoeken dus volgende keer. ;)

'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.


Dit topic is gesloten.